home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / sun / volume1 / sunclock < prev    next >
Encoding:
Internet Message Format  |  1989-10-26  |  65.0 KB

  1. Subject:  v01i079:  Sunclock - a world-view of the day
  2. Newsgroups: comp.sources.sun
  3. Approved: mcgrew@aramis.rutgers.edu
  4.  
  5. Submitted-by: kelvin@acad.uu.net (John Walker)
  6. Posting-number: Volume 1, Issue 79
  7. Archive-name: sunclock
  8.  
  9. #! /bin/sh
  10. # This is a shell archive, meaning:
  11. # 1. Remove everything above the #! /bin/sh line.
  12. # 2. Save the resulting text in a file.
  13. # 3. Execute the file with /bin/sh (not csh) to create the files:
  14. #    README
  15. #    Makefile
  16. #    sunclock.c
  17. #    sunclock.h
  18. #    sunclock.1
  19. # This archive created: Wed Aug 23 20:26:38 1989
  20. export PATH; PATH=/bin:$PATH
  21. echo shar: extracting "'README'" '(951 characters)'
  22. if test -f 'README'
  23. then
  24.        echo shar: will not over-write existing file "'README'"
  25. else
  26. cat << \SHAR_EOF > 'README'
  27.  
  28. Sunclock is a SunView program  that  displays  a  map  of  the  Earth,
  29. showing  the  portion  illuminated  by  the  Sun  at the current time,
  30. properly corrected for the season.  The  program  initially  comes  up
  31. iconic  (126x63)  and can be opened into a larger (640x320) pixel map.
  32.  
  33. A SunView menu allows animated displays that show the passage  of  day
  34. and  night, the changes in the seasons, and even the precession of the
  35. equinoxes as year follows year.
  36.  
  37. I saw a program like this running under NeWS, and couldn't sleep until
  38. I had one for my SunView screen.  It seems to work on Sun  3,  4,  and
  39. 386i  architectures,  on any SunView later than 3.5.  It's been tested
  40. most recently on a Sun 3/260 running SunOS 4.0.3.
  41.  
  42. Enjoy!
  43.  
  44. Author:
  45.  
  46.     John Walker
  47.     Autodesk, Inc.
  48.     2320 Marinship Way
  49.     Sausalito, CA  94965
  50.     USA
  51.     {sun,well,uunet}!acad!kelvin
  52. or: kelvin@acad.uu.net
  53.     Fax:   (415) 389-9418
  54.     Voice: (415) 332-2344 Ext. 2829
  55. SHAR_EOF
  56. fi # end of overwriting check
  57. echo shar: extracting "'Makefile'" '(432 characters)'
  58. if test -f 'Makefile'
  59. then
  60.        echo shar: will not over-write existing file "'Makefile'"
  61. else
  62. cat << \SHAR_EOF > 'Makefile'
  63.  
  64. #    Make instructions for the Sun clock program
  65.  
  66. RELFILES = README Makefile sunclock.c sunclock.h sunclock.1
  67.  
  68. LIBRARIES = -lsuntool -lsunwindow -lpixrect -lm
  69.  
  70. sunclock: sunclock.c sunclock.h
  71.     cc -O sunclock.c -o sunclock $(LIBRARIES)
  72.     strip sunclock
  73.  
  74. clean:
  75.     rm -f sunclock
  76.     rm -f *.bak
  77.     rm -f core cscope.out
  78.  
  79. manpage:
  80.     nroff -man sunclock.1 | more
  81.  
  82. lint:
  83.     lint sunclock.c $(LIBRARIES)
  84.  
  85. shar:
  86.     shar -b -v $(RELFILES) >sunclock.shar
  87. SHAR_EOF
  88. fi # end of overwriting check
  89. echo shar: extracting "'sunclock.c'" '(19862 characters)'
  90. if test -f 'sunclock.c'
  91. then
  92.        echo shar: will not over-write existing file "'sunclock.c'"
  93. else
  94. cat << \SHAR_EOF > 'sunclock.c'
  95. /*
  96.  
  97.     Sun clock
  98.  
  99.     Designed and implemented by John Walker in November of 1988.
  100.  
  101.     Version for the Sun Workstation.
  102.  
  103.     The algorithm used to calculate the position of the Sun is given in
  104.     Chapter 18 of:
  105.  
  106.     "Astronomical  Formulae for Calculators" by Jean Meeus, Third Edition,
  107.     Richmond: Willmann-Bell, 1985.  This book can be obtained from:
  108.  
  109.        Willmann-Bell
  110.        P.O. Box 35025
  111.        Richmond, VA  23235
  112.        USA
  113.        Phone: (804) 320-7016
  114.  
  115.     This program was written by:
  116.  
  117.        John Walker
  118.        Autodesk, Inc.
  119.        2320 Marinship Way
  120.        Sausalito, CA  94965
  121.        USA
  122.        Fax:   (415) 389-9418
  123.        Voice: (415) 332-2344 Ext. 2829
  124.        Usenet: {sun,well,uunet}!acad!kelvin
  125.        or: kelvin@acad.uu.net
  126.  
  127.     This  program is in the public domain: "Do what thou wilt shall be the
  128.     whole of the law".  I'd appreciate  receiving  any  bug  fixes  and/or
  129.     enhancements,  which  I'll  incorporate  in  future  versions  of  the
  130.     program.  Please leave the original attribution information intact    so
  131.     that credit and blame may be properly apportioned.
  132.  
  133.     Revision history:
  134.  
  135.     1.0  12/21/89  Initial version.
  136.           8/24/89  Finally got around to submitting.
  137.  
  138. */
  139.  
  140. #include <stdio.h>
  141. #include <ctype.h>
  142. #include <math.h>
  143. #include <sys/types.h>
  144. #include <sys/timeb.h>
  145. #include <assert.h>
  146.  
  147. #include <suntool/sunview.h>
  148. #include <suntool/canvas.h>
  149. #include <suntool/scrollbar.h>
  150. #include <pixrect/pixrect_hs.h>
  151.  
  152. #define abs(x) ((x) < 0 ? (-(x)) : x)              /* Absolute value */
  153. #define sgn(x) (((x) < 0) ? -1 : ((x) > 0 ? 1 : 0))      /* Extract sign */
  154. #define dtr(x) ((x) * (PI / 180.0))              /* Degree->Radian */
  155. #define rtd(x) ((x) / (PI / 180.0))              /* Radian->Degree */
  156. #define fixangle(a) ((a) - 360.0 * (floor((a) / 360.0)))  /* Fix angle      */
  157.  
  158. #define V      (void)
  159.  
  160. #define PI 3.14159265358979323846
  161.  
  162. #define TERMINC  100           /* Circle segments for terminator */
  163.  
  164. #define PROJINT  (60 * 10)       /* Frequency of seasonal recalculation
  165.                       in seconds. */
  166.  
  167. #define CXDOTS     126           /* Closed window width */
  168. #define CYDOTS     63           /* Closed window height */
  169.  
  170. #define IXDOTS     128           /* Total icon width */
  171. #define IYDOTS     74           /* Total icon height */
  172.  
  173. #define OXDOTS     640           /* Open window width */
  174. #define OYDOTS     320           /* Open window height */
  175.  
  176. /*  Globals imported  */
  177.  
  178. extern char *getenv(), *timezone(), *malloc(), *sprintf();
  179. extern time_t time();
  180. #ifdef lint
  181. extern void pw_batch();
  182. #endif
  183.  
  184. /*  Local variables  */
  185.  
  186. static int xdots, ydots;       /* Screen size */
  187. #include "sunclock.h"              /* Icon and open window bitmaps */
  188. static char *wdname[] = {       /* Week day names */
  189.         "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
  190. };
  191. static    Frame    bf;
  192. static    Pixwin    *fpw, *cpw, *apw;
  193. static    Pixfont *tinyfont;
  194. static    Pixfont *regfont;
  195.  
  196. static int onoon = -1;
  197. static short *wtab, *wtab1, *wtabs;
  198. static struct timeb tbtp;
  199.  
  200. static struct itimerval notif_timer = {{1, 0}, {1, 0}};
  201. static struct itimerval quick_timer = {{0, 500000}, {0, 500000}};
  202. static Menu actmenu;
  203.  
  204. static int fdate = FALSE, idir = 1, animate = FALSE;
  205. static long lincr = 60;
  206. static long cctime;
  207.  
  208. /*  Forward procedures    */
  209.  
  210. double jtime(), gmst();
  211. void drawterm(), sunpos(), projillum(), moveterm(), outdiff(), usage();
  212.  
  213. /*  UPDIMAGE  --  Update current displayed image.  */
  214.  
  215. static void updimage(istimer)
  216. int istimer;
  217. {
  218.     int i, xl, isclosed;
  219.     struct tm *ct;
  220.     char tbuf[80];
  221.     double jt, sunra, sundec, sunrv, sunlong, gt;
  222.     struct tm lt;
  223.     static int lisec = 61;       /* Last iconic seconds */
  224.     static long lctime = 0;    /* Last full calculation time */
  225.  
  226.     isclosed = (int) window_get(bf, FRAME_CLOSED);
  227.  
  228.     if (!istimer) {
  229.        if (isclosed) {
  230.           xdots = CXDOTS;
  231.           ydots = CYDOTS;
  232.  
  233.           V pw_writebackground(fpw, 0, 0, IXDOTS, IYDOTS, PIX_SRC);
  234.           V pw_vector(fpw, 0, 0, IXDOTS - 1, 0, PIX_SRC, 1);
  235.           V pw_vector(fpw, IXDOTS - 1, 0, IXDOTS - 1,
  236.                    IYDOTS - 1, PIX_SRC, 1);
  237.           V pw_vector(fpw, IXDOTS - 1, IYDOTS - 1, 0,
  238.                    IYDOTS - 1, PIX_SRC, 1);
  239.           V pw_vector(fpw, 0, IYDOTS - 1, 0, 0, PIX_SRC, 1);
  240.           V pw_rop(fpw, 1, 1, micon.pr_size.x, micon.pr_size.y,
  241.             PIX_NOT(PIX_SRC),
  242.             &micon, 0, 0);
  243.        } else {
  244.           xdots = OXDOTS;
  245.           ydots = OYDOTS;
  246.  
  247.           V pw_rop(cpw, 0, 0, bimage.pr_size.x, bimage.pr_size.y,
  248.             PIX_NOT(PIX_SRC),
  249.             &bimage, 0, 0);
  250.        }
  251.     }
  252.  
  253.     /* If this is a full repaint of the window, force complete
  254.        recalculation. */
  255.  
  256.     if (!istimer) {
  257.        lctime = 0;
  258.        onoon = -1;
  259.        lisec = 61;
  260.        for (i = 0; i < OYDOTS; i++) {
  261.           wtab1[i] = -1;
  262.        }
  263.     }
  264.  
  265.     if (fdate) {
  266.        if (animate)
  267.           cctime += lincr;
  268.        if (cctime < 0)
  269.           cctime = 0;
  270.     } else {
  271.        V time(&cctime);
  272.     }
  273.     lt = *localtime(&cctime);
  274.  
  275.         /* Special  case  to  reduce overhead  whilst iconic: if we're
  276.        only showing the icon, update the  display  only  once  per
  277.        minute,  detected  by  the  fact  that  the current seconds
  278.        reading is less than that of the  last  update.   The  icon
  279.        shows  only    hours  and  minutes, and is sufficiently small
  280.        that once-a-minute updates are plenty to keep  the  picture
  281.        in sync.  */
  282.  
  283.     if (isclosed && !fdate && (lt.tm_sec > lisec))
  284.        return;
  285.  
  286.     ct = gmtime(&cctime);
  287.  
  288.     jt = jtime(ct);
  289.     sunpos(jt, FALSE, &sunra, &sundec, &sunrv, &sunlong);
  290.     gt = gmst(jt);
  291.  
  292.     /* Projecting the illumination curve  for the current seasonal
  293.            instant is costly.  If we're running in real time, only  do
  294.        it every PROJINT seconds.  */
  295.  
  296.     if (fdate || !istimer || ((cctime - lctime) > PROJINT)) {
  297.        projillum(wtab, xdots, ydots, sundec);
  298.        wtabs = wtab;
  299.        wtab = wtab1;
  300.        wtab1 = wtabs;
  301.        lctime = cctime;
  302.     }
  303.  
  304.     sunlong = fixangle(180.0 + (sunra - (gt * 15)));
  305.     xl = sunlong * (xdots / 360.0);
  306.  
  307.     /* If the subsolar point has moved at least one pixel, update
  308.        the illuminated area on the screen.    */
  309.  
  310.     if (fdate || !istimer || (onoon != xl)) {
  311.        apw = isclosed ? fpw : cpw;
  312.        pw_batch_on(apw);
  313.        moveterm(wtab1, xl, wtab, onoon, xdots, ydots);
  314.        pw_batch_off(apw);
  315.        onoon = xl;
  316.     }
  317.  
  318.     if (isclosed) {
  319.  
  320.        /* Display time in closed window */
  321.  
  322.            V sprintf(tbuf, "%02d:%02d %s %s %02d/%02d",
  323.           lt.tm_hour, lt.tm_min,
  324.           timezone(tbtp.timezone, lt.tm_isdst),
  325.           wdname[lt.tm_wday],
  326.           lt.tm_mon + 1, lt.tm_mday);
  327.        V pw_text(fpw, 8, IYDOTS - 3, PIX_SRC, tinyfont, tbuf);
  328.        lisec = lt.tm_sec;
  329.  
  330.     } else {
  331.  
  332.        /* Display time in open window */
  333.  
  334.        V sprintf(tbuf,
  335.   " %02d:%02d:%02d %s %s %02d/%02d/%02d    %02d:%02d:%02d UTC %02d/%02d/%02d ",
  336.           lt.tm_hour, lt.tm_min, lt.tm_sec,
  337.           timezone(tbtp.timezone, lt.tm_isdst),
  338.           wdname[lt.tm_wday],
  339.           lt.tm_mon + 1, lt.tm_mday, (lt.tm_year % 100),
  340.           ct->tm_hour, ct->tm_min, ct->tm_sec,
  341.           ct->tm_mon + 1, ct->tm_mday, (ct->tm_year % 100));
  342.        V pw_text(cpw, 85, ydots - 6, PIX_SRC, regfont, tbuf);
  343.     }
  344. }
  345.  
  346. /*  Frame event processor  */
  347.  
  348. static frame_event_proc(frame, event, arg, type)
  349. Frame frame;
  350. Event *event;
  351. Notify_arg arg;
  352. Notify_event_type type;
  353. {
  354.     switch (event_id(event)) {
  355.  
  356.        case WIN_REPAINT:
  357.           if (window_get(bf, FRAME_CLOSED)) {
  358.          updimage(FALSE);
  359.           } else {
  360.          xdots = OXDOTS;
  361.          ydots = OYDOTS;
  362.  
  363.          updimage(FALSE);
  364.           }
  365.           break;
  366.  
  367.        default:
  368.           window_default_event_func(frame, event, arg, type);
  369.           break;
  370.     }
  371. }
  372.  
  373. /*  Timer notification procedure.  */
  374.  
  375. /*ARGSUSED*/
  376. static Notify_value timer_proc(frame, which)
  377. Notify_client frame;
  378. int which;
  379. {
  380.     updimage(TRUE);
  381.     return(NOTIFY_DONE);
  382. }
  383.  
  384. /*  CEVENT  --    Canvas event handler  */
  385.  
  386. /*ARGSUSED*/
  387. static void cevent(window, event, arg)
  388. Window window;
  389. Event *event;
  390. caddr_t arg;
  391. {
  392. #define mdis(x,y) V menu_set(menu_get(actmenu,MENU_NTH_ITEM,x),\
  393.                  MENU_INACTIVE,y,0)
  394.  
  395.     mdis(1, idir > 0);
  396.     mdis(2, idir < 0);
  397.     mdis(11, !fdate);
  398.  
  399.     switch (event_id(event)) {
  400.  
  401.        case MS_RIGHT:
  402.           switch (menu_show(actmenu, window, event, 0)) {
  403.  
  404.          case 1:       /* Forward */
  405.             if (idir < 0)
  406.                lincr = -lincr;
  407.             idir = 1;
  408.             break;
  409.  
  410.          case 2:       /* Backward */
  411.             if (idir > 0)
  412.                lincr = -lincr;
  413.             idir = -1;
  414.             break;
  415.  
  416.          case 4:       /* Hour */
  417.             cctime += (lincr = 3600L * idir);
  418.             fdate = TRUE;
  419.             break;
  420.  
  421.          case 5:       /* Day */
  422.             cctime += (lincr = 86400L * idir);
  423.             fdate = TRUE;
  424.             break;
  425.  
  426.          case 6:       /* Week */
  427.             cctime += (lincr = 86400L * 7 * idir);
  428.             fdate = TRUE;
  429.             break;
  430.  
  431.          case 7:       /* Month */
  432.             cctime += (lincr = 86400L * 30 * idir);
  433.             fdate = TRUE;
  434.             break;
  435.  
  436.          case 8:       /* Year */
  437.             cctime += (lincr = 86400L * 365L * idir);
  438.             fdate = TRUE;
  439.             break;
  440.  
  441.          case 10:       /* Animate */
  442.             animate = fdate = TRUE;
  443.             V notify_set_itimer_func(bf, timer_proc, ITIMER_REAL,
  444.               &quick_timer, (struct itimerval *) NULL);
  445.             break;
  446.  
  447.          case 11:       /* Real time */
  448.             animate = fdate = FALSE;
  449.             V notify_set_itimer_func(bf, timer_proc, ITIMER_REAL,
  450.               ¬if_timer, (struct itimerval *) NULL);
  451.             updimage(FALSE);
  452.             break;
  453.  
  454.          case 13:       /* Quit */
  455.             V window_done(window);
  456.             break;
  457.           }
  458.     }
  459. }
  460.  
  461. /*  MAIN  --  Main program  */
  462.  
  463. void main(argc, argv)
  464. int argc;
  465. char *argv[];
  466. {
  467.     int i;
  468.     char *op, opt;
  469.     Icon icon;
  470.     Canvas canvas;
  471.  
  472.         if (getenv("WINDOW_PARENT") == NULL) {
  473.            V fprintf(stderr, "%s must be run from within Suntools\n", argv[0]);
  474.        exit(1);
  475.     }
  476.  
  477.     /*  Process command line options.  */
  478.  
  479.     for (i = 1; i < argc; i++) {
  480.        op = argv[i];
  481.            if (*op == '-') {
  482.           opt = *(++op);
  483.           if (islower(opt))
  484.          opt = toupper(opt);
  485.           switch (opt) {
  486.                  case 'U':
  487.                  case '?':
  488.             usage();
  489.             exit(0);
  490.           }
  491.        }
  492.     }
  493.  
  494.     icon = icon_create(ICON_WIDTH, IXDOTS,
  495.                   ICON_HEIGHT, IYDOTS, ICON_LABEL, "", 0);
  496.     bf = window_create((Window) NULL, FRAME,
  497.                   FRAME_LABEL,
  498.            "Sun Clock          by John Walker, Autodesk, Inc.       v1.0",
  499.                   FRAME_NO_CONFIRM, TRUE,
  500.                   FRAME_ARGC_PTR_ARGV, &argc, argv,
  501.                   FRAME_ICON, icon,
  502.                   FRAME_CLOSED, TRUE,
  503.                   WIN_EVENT_PROC, frame_event_proc,
  504.                0);
  505.     canvas = window_create(bf, CANVAS,
  506.                    WIN_EVENT_PROC, cevent,
  507.                    0);
  508.  
  509.     V window_set(bf,
  510.        WIN_CONSUME_PICK_EVENTS,
  511.           WIN_NO_EVENTS, WIN_MOUSE_BUTTONS, LOC_DRAG, 0,
  512.        WIN_CONSUME_KBD_EVENT, WIN_LEFT_KEYS,
  513.        0);
  514.  
  515.     V window_set(canvas,
  516.        CANVAS_AUTO_EXPAND, FALSE,
  517.        CANVAS_AUTO_SHRINK, FALSE,
  518.        CANVAS_HEIGHT, OYDOTS,
  519.        CANVAS_WIDTH, OXDOTS,
  520.        WIN_HEIGHT, OYDOTS,
  521.        WIN_WIDTH, OXDOTS,
  522.        0);
  523.  
  524.     window_fit(canvas);
  525.  
  526.     window_fit(bf);
  527.     fpw = (Pixwin *) window_get(bf, WIN_PIXWIN);
  528.     cpw = canvas_pixwin(canvas);
  529.  
  530.         tinyfont = pf_open("/usr/lib/fonts/fixedwidthfonts/screen.r.7");
  531.         regfont = pf_open("/usr/lib/fonts/fixedwidthfonts/screen.b.14");
  532.  
  533.     actmenu = menu_create(MENU_STRINGS,
  534.            "Forward",
  535.            "Backward",
  536.            "",
  537.            "Hour",
  538.            "Day",
  539.            "Week",
  540.            "Month",
  541.            "Year",
  542.            "",
  543.            "Animate",
  544.            "Real time",
  545.            "",
  546.            "Quit",
  547.        0, 0);
  548.  
  549.     mdis(3, TRUE);           /* Disable blank slots in menu */
  550.     mdis(9, TRUE);
  551.     mdis(12, TRUE);
  552.  
  553.     xdots = OXDOTS;
  554.     ydots = OYDOTS;
  555.  
  556.     wtab = (short *) malloc((unsigned int) ydots * sizeof(short));
  557.     wtab1 = (short *) malloc((unsigned int) ydots * sizeof(short));
  558.  
  559.  
  560.     ftime(&tbtp);
  561.  
  562.     V notify_set_itimer_func(bf, timer_proc, ITIMER_REAL,
  563.           ¬if_timer, (struct itimerval *) NULL);
  564.     window_main_loop(bf);
  565.  
  566.     exit(0);
  567. }
  568.  
  569. /*  JDATE  --  Convert internal GMT date and time to Julian day
  570.            and fraction.  */
  571.  
  572. static long jdate(t)
  573. struct tm *t;
  574. {
  575.     long c, m, y;
  576.  
  577.     y = t->tm_year + 1900;
  578.     m = t->tm_mon + 1;
  579.     if (m > 2)
  580.        m = m - 3;
  581.     else {
  582.        m = m + 9;
  583.        y--;
  584.     }
  585.     c = y / 100L;           /* Compute century */
  586.     y -= 100L * c;
  587.     return t->tm_mday + (c * 146097L) / 4 + (y * 1461L) / 4 +
  588.         (m * 153L + 2) / 5 + 1721119L;
  589. }
  590.  
  591. /* JTIME --    Convert internal GMT  date  and    time  to  astronomical
  592.            Julian  time  (i.e.   Julian  date  plus  day fraction,
  593.            expressed as a double).    */
  594.  
  595. static double jtime(t)
  596. struct tm *t;
  597. {
  598.     return (jdate(t) - 0.5) + 
  599.        (((long) t->tm_sec) +
  600.          60L * (t->tm_min + 60L * t->tm_hour)) / 86400.0;
  601. }
  602.  
  603. /*  KEPLER  --    Solve the equation of Kepler.  */
  604.  
  605. static double kepler(m, ecc)
  606. double m, ecc;
  607. {
  608.     double e, delta;
  609. #define EPSILON 1E-6
  610.  
  611.     e = m = dtr(m);
  612.     do {
  613.        delta = e - ecc * sin(e) - m;
  614.        e -= delta / (1 - ecc * cos(e));
  615.     } while (abs(delta) > EPSILON);
  616.     return e;
  617. }
  618.  
  619. /*  SUNPOS  --    Calculate position of the Sun.    JD is the Julian  date
  620.         of  the  instant for which the position is desired and
  621.         APPARENT should be nonzero if  the  apparent  position
  622.         (corrected  for  nutation  and aberration) is desired.
  623.                 The Sun's co-ordinates are returned  in  RA  and  DEC,
  624.         both  specified  in degrees (divide RA by 15 to obtain
  625.         hours).  The radius vector to the Sun in  astronomical
  626.                 units  is returned in RV and the Sun's longitude (true
  627.         or apparent, as desired) is  returned  as  degrees  in
  628.         SLONG.    */
  629.  
  630. static void sunpos(jd, apparent, ra, dec, rv, slong)
  631. double jd;
  632. int apparent;
  633. double *ra, *dec, *rv, *slong;
  634. {
  635.     double t, t2, t3, l, m, e, ea, v, theta, omega,
  636.            eps;
  637.  
  638.     /* Time, in Julian centuries of 36525 ephemeris days,
  639.        measured from the epoch 1900 January 0.5 ET. */
  640.  
  641.     t = (jd - 2415020.0) / 36525.0;
  642.     t2 = t * t;
  643.     t3 = t2 * t;
  644.  
  645.     /* Geometric mean longitude of the Sun, referred to the
  646.        mean equinox of the date. */
  647.  
  648.     l = fixangle(279.69668 + 36000.76892 * t + 0.0003025 * t2);
  649.  
  650.         /* Sun's mean anomaly. */
  651.  
  652.     m = fixangle(358.47583 + 35999.04975*t - 0.000150*t2 - 0.0000033*t3);
  653.  
  654.         /* Eccentricity of the Earth's orbit. */
  655.  
  656.     e = 0.01675104 - 0.0000418 * t - 0.000000126 * t2;
  657.  
  658.     /* Eccentric anomaly. */
  659.  
  660.     ea = kepler(m, e);
  661.  
  662.     /* True anomaly */
  663.  
  664.     v = fixangle(2 * rtd(atan(sqrt((1 + e) / (1 - e))  * tan(ea / 2))));
  665.  
  666.         /* Sun's true longitude. */
  667.  
  668.     theta = l + v - m;
  669.  
  670.     /* Obliquity of the ecliptic. */
  671.  
  672.     eps = 23.452294 - 0.0130125 * t - 0.00000164 * t2 + 0.000000503 * t3;
  673.  
  674.         /* Corrections for Sun's apparent longitude, if desired. */
  675.  
  676.     if (apparent) {
  677.        omega = fixangle(259.18 - 1934.142 * t);
  678.        theta = theta - 0.00569 - 0.00479 * sin(dtr(omega));
  679.        eps += 0.00256 * cos(dtr(omega));
  680.     }
  681.  
  682.         /* Return Sun's longitude and radius vector */
  683.  
  684.     *slong = theta;
  685.     *rv = (1.0000002 * (1 - e * e)) / (1 + e * cos(dtr(v)));
  686.  
  687.     /* Determine solar co-ordinates. */
  688.  
  689.     *ra =
  690.     fixangle(rtd(atan2(cos(dtr(eps)) * sin(dtr(theta)), cos(dtr(theta)))));
  691.     *dec = rtd(asin(sin(dtr(eps)) * sin(dtr(theta))));
  692. }
  693.  
  694. /*  GMST  --  Calculate Greenwich Mean Siderial Time for a given
  695.           instant expressed as a Julian date and fraction.    */
  696.  
  697. static double gmst(jd)
  698. double jd;
  699. {
  700.     double t, theta0;
  701.  
  702.  
  703.     /* Time, in Julian centuries of 36525 ephemeris days,
  704.        measured from the epoch 1900 January 0.5 ET. */
  705.  
  706.     t = ((floor(jd + 0.5) - 0.5) - 2415020.0) / 36525.0;
  707.  
  708.     theta0 = 6.6460656 + 2400.051262 * t + 0.00002581 * t * t;
  709.  
  710.     t = (jd + 0.5) - (floor(jd + 0.5));
  711.  
  712.     theta0 += (t * 24.0) * 1.002737908;
  713.  
  714.     theta0 = (theta0 - 24.0 * (floor(theta0 / 24.0)));
  715.  
  716.     return theta0;
  717. }
  718.  
  719. /*  PROJILLUM  --  Project illuminated area on the map.  */
  720.  
  721. static void projillum(wtab, xdots, ydots, dec)
  722. short *wtab;
  723. int xdots, ydots;
  724. double dec;
  725. {
  726.     int i, ftf = TRUE, ilon, ilat, lilon, lilat, xt;
  727.     double m, x, y, z, th, lon, lat, s, c;
  728.  
  729.     /* Clear unoccupied cells in width table */
  730.  
  731.     for (i = 0; i < ydots; i++)
  732.        wtab[i] = -1;
  733.  
  734.     /* Build transformation for declination */
  735.  
  736.     s = sin(-dtr(dec));
  737.     c = cos(-dtr(dec));
  738.  
  739.     /* Increment over a semicircle of illumination */
  740.  
  741.     for (th = -(PI / 2); th <= PI / 2 + 0.001;
  742.          th += PI / TERMINC) {
  743.  
  744.        /* Transform the point through the declination rotation. */
  745.  
  746.        x = -s * sin(th);
  747.        y = cos(th);
  748.        z = c * sin(th);
  749.  
  750.        /* Transform the resulting co-ordinate through the
  751.           map projection to obtain screen co-ordinates. */
  752.  
  753.        lon = (y == 0 && x == 0) ? 0.0 : rtd(atan2(y, x));
  754.        lat = rtd(asin(z));
  755.  
  756.        ilat = ydots - (lat + 90) * (ydots / 180.0);
  757.        ilon = lon * (xdots / 360.0);
  758.  
  759.        if (ftf) {
  760.  
  761.           /* First time.  Just save start co-ordinate. */
  762.  
  763.           lilon = ilon;
  764.           lilat = ilat;
  765.           ftf = FALSE;
  766.        } else {
  767.  
  768.           /* Trace out the line and set the width table. */
  769.  
  770.           if (lilat == ilat) {
  771.          wtab[(ydots - 1) - ilat] = ilon == 0 ? 1 : ilon;
  772.           } else {
  773.          m = ((double) (ilon - lilon)) / (ilat - lilat);
  774.          for (i = lilat; i != ilat; i += sgn(ilat - lilat)) {
  775.             xt = lilon + floor((m * (i - lilat)) + 0.5);
  776.             wtab[(ydots - 1) - i] = xt == 0 ? 1 : xt;
  777.          }
  778.           }
  779.           lilon = ilon;
  780.           lilat = ilat;
  781.        }
  782.     }
  783.  
  784.     /* Now tweak the widths to generate full illumination for
  785.        the correct pole. */
  786.  
  787.     if (dec < 0.0) {
  788.        ilat = ydots - 1;
  789.        lilat = -1;
  790.     } else {
  791.        ilat = 0;
  792.        lilat = 1;
  793.     }
  794.  
  795.     for (i = ilat; i != ydots / 2; i += lilat) {
  796.        if (wtab[i] != -1) {
  797.           while (TRUE) {
  798.          wtab[i] = xdots / 2;
  799.          if (i == ilat)
  800.             break;
  801.          i -= lilat;
  802.           }
  803.           break;
  804.        }
  805.     }
  806. }
  807.  
  808. /*  XSPAN  --  Complement a span of pixels.  Called with line in which
  809.            pixels are contained, leftmost pixel in the  line,  and
  810.            the   number   of   pixels   to     complement.   Handles
  811.            wrap-around at the right edge of the screen.  */
  812.  
  813. static void xspan(pline, leftp, npix)
  814. int pline, leftp, npix;
  815. {
  816.     int xo, yo;
  817.  
  818.     if (window_get(bf, FRAME_CLOSED)) {
  819.        xo = 1;
  820.        yo = 1;
  821.     } else {
  822.        xo = yo = 0;
  823.     }
  824.  
  825.     leftp = leftp % xdots;
  826.     pline += yo;
  827.  
  828.     if ((leftp + npix) > xdots) {
  829.        V pw_vector(apw, leftp + xo, pline, xo + (xdots - 1), pline,
  830.          PIX_SRC ^ PIX_DST, 1);
  831.        V pw_vector(apw, xo, pline, xo + ((leftp + npix) - (xdots + 1)),
  832.          pline, PIX_SRC ^ PIX_DST, 1);
  833.     } else {
  834.        V pw_vector(apw, xo + leftp, pline, xo + leftp + (npix - 1), pline,
  835.          PIX_SRC ^ PIX_DST, 1);
  836.     }
  837. }
  838.  
  839. /*  MOVETERM  --  Update illuminated portion of the globe.  */
  840.  
  841. static void moveterm(wtab, noon, otab, onoon, xdots, ydots)
  842. short *wtab, *otab;
  843. int noon, onoon, xdots, ydots;
  844. {
  845.     int i, ol, oh, nl, nh;
  846.  
  847.     for (i = 0; i < ydots; i++) {
  848.  
  849.        /* If line is off in new width table but is set in
  850.           the old table, clear it. */
  851.  
  852.        if (wtab[i] < 0) {
  853.           if (otab[i] >= 0) {
  854.          xspan(i, ((onoon - otab[i]) + xdots) % xdots,
  855.             otab[i] * 2);
  856.           }
  857.        } else {
  858.  
  859.           /* Line is on in new width table.  If it was off in
  860.          the old width table, just draw it. */
  861.  
  862.           if (otab[i] < 0) {
  863.          xspan(i, ((noon - wtab[i]) + xdots) % xdots,
  864.             wtab[i] * 2);
  865.           } else {
  866.  
  867.          /* If both the old and new spans were the entire
  868.                     screen, they're equivalent. */
  869.  
  870.          if ((otab[i] == wtab[i]) && (wtab[i] == (xdots / 2)))
  871.             continue;
  872.  
  873.          /* The line was on in both the old and new width
  874.             tables.  We must adjust the difference in the
  875.             span.  */
  876.  
  877.          ol =  ((onoon - otab[i]) + xdots) % xdots;
  878.          oh = (ol + otab[i] * 2) - 1;
  879.          nl =  ((noon - wtab[i]) + xdots) % xdots;
  880.          nh = (nl + wtab[i] * 2) - 1;
  881.  
  882.          /* If spans are disjoint, erase old span and set
  883.             new span. */
  884.  
  885.          if (oh < nl || nh < ol) {
  886.             xspan(i, ol, (oh - ol) + 1);
  887.             xspan(i, nl, (nh - nl) + 1);
  888.          } else {
  889.             /* Clear portion(s) of old span that extend
  890.                beyond end of new span. */
  891.             if (ol < nl) {
  892.                xspan(i, ol, nl - ol);
  893.                ol = nl;
  894.             }
  895.             if (oh > nh) {
  896.                xspan(i, nh + 1, oh - nh);
  897.                oh = nh;
  898.             }
  899.             /* Extend existing (possibly trimmed) span to
  900.                correct new length. */
  901.             if (nl < ol) {
  902.                xspan(i, nl, ol - nl);
  903.             }
  904.             if (nh > oh) {
  905.                xspan(i, oh + 1, nh - oh);
  906.             }
  907.          }
  908.           }
  909.        }
  910.        otab[i] = wtab[i];
  911.     }
  912. }
  913.  
  914. /*  USAGE  --  Print how-to-call information.  */
  915.  
  916. static void usage()
  917. {
  918.     V fprintf(stderr,
  919.            "sunclock  --  The Sun clock.  By John Walker, Autodesk, Inc.\n");
  920. }
  921. SHAR_EOF
  922. fi # end of overwriting check
  923. echo shar: extracting "'sunclock.h'" '(41456 characters)'
  924. if test -f 'sunclock.h'
  925. then
  926.        echo shar: will not over-write existing file "'sunclock.h'"
  927. else
  928. cat << \SHAR_EOF > 'sunclock.h'
  929.  
  930. /* Small icon definition. */
  931.  
  932. short micn[] = {
  933.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0xFFFF,
  934.     0xFFE0,0,0x400,0,0,0,0x7F,0xFFC0,0x7E0,0x3F87,
  935.     0xFE01,0xF800,0,0,0x1FFF,0xFFE0,0x180,0x3F00,0x1F01,
  936.     0xFE03,0xC000,0,0x1FFF,0xF830,0x780,0,0x7FDF,0x6FFB,
  937.     0xF000,0x83F8,0x7FFF,0xFF1C,0xF18,0x7E0,0x7BF8,0x2FF,
  938.     0xFF34,0xCE0F,0xFFFF,0xFFDC,0x1E00,0x1EFF,0xFFE0,
  939.     0x3000,0x33FC,0xFE00,0x1DDF,0xFFCC,0xF3E0,0x3FFF,0x1F8,
  940.     0,12,0x3E60,0xFCF,0xFF8F,0x83C0,0xF7FC,0,0,0x39C,
  941.     0xFFF,0x87E6,0x1787,14,0xFFF8,0,0,0xFFF0,0x3C3,
  942.     0xC1B3,0xBDC0,14,0x7FE8,0,0x3003,0x8780,0x1F00,0xE018,
  943.     0xF470,0x1F,0xFE01,0x8060,0x3C03,0xC700,0xF800,0xF01D,
  944.     0xB1F0,0x1F,0x8003,0x20,0x1800,0xC600,0,0x3871,0xFBF8,
  945.     7,10,0xC00,1,0xCC00,0,0x1013,0xF7D8,2,0x7879,0xD8F8,
  946.     3,0xF800,0,0x1010,0xFF80,0x1F,0xFCBD,0xD860,14,
  947.     0xE000,0,0x1000,0xEE00,0x813,0xFFDE,0xE000,0xF9,
  948.     0x8000,0,0x1800,0x800,0xE1F,0xFBF6,0xC000,0xFB,0x8000,
  949.     0,0xE00,0x3800,0x1E,0x7190,0,0xDF,0x8000,0,0x301,
  950.     0xE000,0xD0,0x1FF1,0x8000,0xCC,0,0,0x38F,0x6000,0x70,
  951.     0x31,0xE000,0x40,0,0,0x3C8,0x3000,0x60,0x38,0xFE00,
  952.     0xC0,0,0x100,0xE8,0xF000,0xC0,0x78,0x7387,0xFC0,0,
  953.     0x180,0x2F,0xFF00,0xC0,0x1C,0x318D,0x8C40,0,0,0x3F,
  954.     0xDF80,0x40,12,0x6098,0xCCC0,0,0,7,0xC000,0xC0,
  955.     0x180F,0xC0D1,0xECE0,0,0,0x80,0xCFC0,0x60,0x1803,
  956.     0x8071,0x7CE0,0x120,0,0x80,0xFFE0,0x22,0,0x8071,
  957.     0x78F0,0x120,0,0,0x3038,0x3F,0xE011,0x8031,0xFBB0,0,
  958.     0,0,0x100C,0,0x6073,0,0xFFB8,0,0,3,0x300F,0,
  959.     0x6476,0,0xF5FD,8,0,2,0x300D,0xC000,0x246C,0,0x7FFF,
  960.     0xD808,0,0,0x2000,0x6000,0x3048,0,0x3FC3,0x7C00,2,0,
  961.     0x3000,0x2060,0x10C8,0,0xFF1,0xF700,2,0,0x1800,
  962.     0x6000,0x104E,0x8000,0xEE,0xF000,0,0,0xA00,0x4000,
  963.     0x1067,0x8000,0x3A,0xC040,4,0,0xE00,0x400C,0x19FF,
  964.     0x8000,0x63,0xE060,4,0,0x200,0xC000,0x1913,0xA000,
  965.     0x1C0,0x30E0,0,0,0x203,0x8000,0x1813,0x2000,0x300,
  966.     0x1840,0,0,0x206,0,0x833,0,0x300,0x800,0,0,0x606,
  967.     0,0xC60,0,0x3C3,0x8800,0,0,0x40C,0,0x4C0,0,0x1BF,
  968.     0x8800,0,0,0x438,0,0x780,0,0x1E3,0x1818,0,0,0x430,
  969.     0,0,0,3,0xF01C,0,0,0x4E0,0,0,0,0,0x601C,0,0,
  970.     0xC80,0,0,0,0,0x6078,0,0,0xD80,0,0,0,0,0x70,0,
  971.     0,0xD00,0,0,0,0,0x40,0,0,0xF60,0,0,0,0,0,0,0,
  972.     0xF80,0x6000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  973.     0,0,0,0,0,0,0x60,0,0,0,0,0,0,0,0x1C0,0,0,
  974.     0x7C1F,0xFFFF,0xC000,0,0,0x1FC0,0,0x87F,0xC3F0,0,
  975.     0x7F00,0,0x1F,0xDF40,0x1F,0xFFC0,0,0,0x1E0,7,0xFFFC,
  976.     0xFEC0,0x3F0,0,0,0,0x1E0,0x1FC,0x6000,0x1F8,0x3E00,
  977.     0,0,0,0x1C0,0x6F0,0,7,0xC000,0,0,0,0x3C0,0x180,0,
  978.     0,0,0,0,0,0x3FC,0xE060,0,0,0,0,0,0,0xE0,0,0,0,
  979.     0,0,0,0,0
  980. };
  981.  
  982. mpr_static(micon, 126, 63, 1, micn);
  983.  
  984. /* Big image definition. */
  985.  
  986. short bimg[] = {
  987.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  988.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  989.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  990.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  991.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  992.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  993.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  994.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  995.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  996.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  997.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  998.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  999.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1000.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1001.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1002.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1003.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1004.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1005.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1006.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1007.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1008.     0,0,0,0,0,0,0,0,0,0,0,0,0,0x1E,0x3FFF,0xFFFF,
  1009.     0xF000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1010.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0xFFFF,0xFFFF,
  1011.     0,0xFFF,0xFF80,0x3F,0xDFF0,0,0,0,0,0,0,0,0,0,0,
  1012.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1013.     0,0x3FC,0,3,0xF0FF,0xFFFC,0,0x7F,0xFFF0,0,0,0,0,
  1014.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1015.     0,0,0,0,0,0,15,0xFF80,0,0x21F,0xFFB0,0xFC00,0,
  1016.     0x1FFF,0xFFEF,0xFFC0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1017.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x7F,
  1018.     0xC000,0,0x3FFF,0xF600,0x6000,0,0,0x1FF8,0x7E0,0,0,
  1019.     0,0,0,0,0x7C00,0x7FFE,0xFC00,0,0,0x1FC,0,0,0,0,
  1020.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1CF,0xFFFF,
  1021.     0xFF00,0x7FFB,0x8000,0,0,0,0xFE01,0xFE00,0,0,0,
  1022.     0x7FFF,0,0x1F,0xFFF8,0xFFFF,0x6000,0,0,0x30C,0,0,0,
  1023.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0x8380,0x7BFE,
  1024.     0x3D,0xF0F8,0,0,0,1,0xC03F,0xE000,0,0,0x7AF,0xFD81,
  1025.     0xE000,0,0xFC0,0x380,0,0,0,0x1FF,0xE000,0,0,0,0,
  1026.     0,0,0,0,0,0,0,0,0,0,0,0,0x1FF7,0x80E0,0x1F87,
  1027.     0xFFF,0x8008,0,0,0,0,0x1F,0,0,0,0xFFE,0xFFFF,0,0,
  1028.     0,0,0,0,0,0xE1,0xEF00,0,0,0,0,0,0,0,0,0,0,0,
  1029.     0,0,0,0,0,0x1FDE,0x3078,0x6FFE,0x1FF8,0x3FF0,0,0,
  1030.     0,0,0x7F,0,0,0,0x1E3F,0xF00,0,0,0,0,0,0,0,0x1F,
  1031.     0x99F0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x7FC,
  1032.     0x3FF,0x6C71,0xFF80,0xF3,0xE000,0,0,0,0,0xCE,0,0,
  1033.     0,0x1FFE,0x7FC0,0,0,0,0,0,0,0,0,0x3FFF,0x8000,0,
  1034.     0,0,0,0,0,0,0,0,0,0,0,0,0,0x7FEC,0xE66,0x7F9F,
  1035.     0xFFD8,0x1FC3,0xFFE0,0,0,0,0,0xFD,0x8000,0,0,0x4FC,
  1036.     0xCFF8,0,0,0,0,0,0,0,0,0x7807,0,0,0,0,0,0,0,
  1037.     0,0,0,0,0,0,0,0x3F,0xEFF8,0xF00,0x3F86,0x3FF8,
  1038.     0x3C01,0xFFF0,0,0,0,0,0xFF,0,0,0,0x79,0x85C0,0,0,
  1039.     0,0,0,0,0,0,0x7FC,0,0,0,0,0,0,0,0,0,0,0,0,
  1040.     0,0,0x1DF,0xDC1E,0xFBF,0xDFFF,0xEA70,0xC00,0x3F00,0,
  1041.     0,0,0,0x7F,0,0,0,0x1F,0,0,0,0,0,0xFF0,0,0,0,
  1042.     0x1C0C,0x300,0,0,0,0x60,0x1A0,0,0,0,0,0,0,0,0,
  1043.     0x1FFF,0xFF9F,0xF7FF,0x47FF,0xFFFF,0xF800,0xFFF,0xFE00,
  1044.     0,0,0,0xFF,0,0,0,0,0,0,0,0,0x1F,0xF8E0,0,0,
  1045.     0x7F8,0xF81F,0xFDE0,0,0,0x798,0,0x20,0,0,0,0,0,0,
  1046.     0,0,0xDFF,0xE4FC,0x9FF8,0xFFDB,0xFFFF,0xFC00,0,0x3E0,
  1047.     0,0,0,0x1FF,0,0,0,0,0,0,0,0,0x1F0,0xFF80,0,1,
  1048.     0xFF0F,0xF000,0x60,0,0,0x6CFF,0xFE00,0,0,0,0,0,0,
  1049.     0,0,0,1,0xFFFF,0xF70F,0xEC58,0,0xF000,0,0x30,0,0,
  1050.     0,0x7F,0x8000,0,0,0,0,0,0,0,0x1F1F,0x8000,0,0xFF,
  1051.     0,0x7000,0x1C0,0,0,0xCCF,0xBFE0,0,0,0,0,0,0,0,0,
  1052.     0,0xFFE,0xFF0,0,0x37CF,0xFFFF,0xE000,0,0x78,0,0,0,
  1053.     0xFF,0,0,0,0,0,0,0,0,0x38F0,0,0,0x180,0,0x3000,
  1054.     0x3FC0,0,0,0x7C0,0x380,0,0,0,0,0,0,0,0,0,0x383F,
  1055.     0xC000,15,0xF3FF,0xFFF,0xFF00,0,0x38,0,0,0,0x1FF8,
  1056.     0,0,0,0,0,0,0,1,0xF780,0,0,0x380,0,0xFC07,
  1057.     0xFF80,0x1E,0,0xC0FE,0,0,0,0,0,0,0,0,0,0,0x1801,
  1058.     0xFE00,0x6C,0x7E06,0x70FD,0x8180,0,0x3E,0,0,3,
  1059.     0xFFF0,0,0,0,0,0,0,0,1,0xFF00,7,0x101,0xFE00,0,
  1060.     3,0xE0FF,0xF83F,0xF000,0x7E,0,0,0,0,0,0,0,0,0,0,
  1061.     0x380F,0xCAFF,0xF07E,0x7EFC,0xC0F1,0xFFC0,0,7,0,0,1,
  1062.     0xFF80,0,0,0,0,0,0,0,7,0x1800,0x3F,0xCF01,0,0,
  1063.     15,0x70,0xFF8,0x1E00,0x3F,0xC000,0,0,0,0,0,0,0,0,
  1064.     0,0xE01E,0x3C3,0x983E,0xFE0,0x81F3,0xFC38,0,15,
  1065.     0xC000,0,0,0x7F80,0,0,0,0,0,0,0,14,0x1000,0x20,
  1066.     0xCFFF,0xE000,0,0,0,0,0xFE00,0x60,0xFFE0,0,0,0,0,
  1067.     0,0x60,0,0,0,0xF8BF,0xF000,0xE03,0x7FE0,0xC0F2,
  1068.     0x200F,0xC000,15,0xF000,0,7,0xFBC0,0,0x6000,0,0,0,
  1069.     0,0,14,0x1000,0x61,0xBFC1,0xFC00,0,0,0,0,0xEE0F,
  1070.     0xFFE0,0x7870,0,0,0,0xF0C0,0,0xFFC,0,0,0,0xFE3,
  1071.     0xE200,0x601,0xCF38,0x3E70,0,0xF000,7,0x7E00,0,7,
  1072.     0xF9C0,1,0xE000,0,0,0x1FF,0xF000,0,3,0x8E00,0x181,
  1073.     0xB000,0x3C00,0,0,0,0,0x3D3,0xF80,0x1E,0x3FE4,0,7,
  1074.     0,0,0x7807,0xFF00,0,0x1E,1,0xFFE0,0x3EC,0x180E,
  1075.     0xE08,0x3C01,0xBF00,1,0xFE00,0,0x1F,0xFF80,0,0,0,0,
  1076.     0x7FF,0xFF00,0,0,0xFEC0,0x100,0xD800,0x7800,0,0,0,
  1077.     0,0xE0,0,3,0xE81E,0,0,0,1,0xC000,0x1FF,0xF000,
  1078.     0x1FF,0x9F01,0xFFC0,0xF8,0x7E1F,0x3FF,0xFF80,0xF80,3,
  1079.     0xFE00,0,0x17,0xCF00,0,0,0,3,0xFFD8,0x3FE0,0,0,
  1080.     0xFF,0x8300,0xF000,0xC00,0,0,0,0,0,0,0,8,0x3C,
  1081.     0xFFC0,0,6,0,0,0x1FE0,0xFE18,0xFCFC,0xFE00,0x71FE,
  1082.     0xDDCF,0x60FF,0x19D0,0x7C0,3,0xFC00,0,0,0x3800,0,0,
  1083.     0,0x3F,0xF000,0x60FF,0xC000,0x380,0x18,0xFB80,0xB7E0,
  1084.     0,0,0,0,0,0,0,0xD80,15,0xFFFC,0xC0FE,0xC000,0xFC,
  1085.     0,0,0x3F,0xE800,7,0xFB7F,0xFFF7,0xE7E1,0xF8E3,0xF8,
  1086.     0x3C0,0,0x7800,0,7,0xE000,0,0,0,0x7F,1,0xE078,
  1087.     0x7806,0x383,0x81F8,0x3FE0,0xDFA0,0,0,0,0,0,0,0,0,
  1088.     3,0x1C,0xC003,0x7800,0x1C0,0,0,3,0,0,0x3DEF,0xFF80,
  1089.     0xFFE1,0xB78E,0x1BFC,0x3F0,0,0xFE00,0,0x1FE,0,0,0,
  1090.     0,0x3E,0,0,0xF03,0xE07F,0xFE70,0xE0,0x6FF0,0,0,
  1091.     0x300,0,0,0,0,0x10,1,3,0xC000,0x180,0x78,0,0,0,
  1092.     0,0x400,0x3FFF,0x80FF,0x9E00,0x1F03,0x27E,0x3E,1,
  1093.     0xFE00,0,0xF00,0,0,0,0,0x38,0,0x70,0x1C2,0xE3CF,
  1094.     0xC000,0x40,0x6CB0,0,0,0,0,0,0,0,0x10,0,0,0,
  1095.     0xFF,15,0x8000,0,0,0,0xEFC,15,0,0xF00,0xEE3,0x3C6,
  1096.     15,0xE001,0xFC00,0,0x3800,0,0x1000,0,0,0x1F0,0,
  1097.     0xF0,0x43,0xE60E,0,1,0x98BF,0,0,0,0,0,0,0,0,0,
  1098.     0,0,0x6061,0xC03B,0xE000,0,0,0,0x1F3F,3,0xC007,
  1099.     0x8600,0x7FC,15,0xC0C9,0xE000,0xFC00,12,0xE000,0x7DF,
  1100.     0xFC00,0,0,0x183,0,0x13F,0x81DB,0x3C00,0,0x3F,
  1101.     0xF38F,0,0,0,0,0,0,0,0,0,0,0,0x7060,0xE3EF,
  1102.     0xE000,0,0,0,0x1FDF,0,0xC03F,0xE017,0x83F0,0x18,
  1103.     0xF3FD,0xF000,0xF000,0x1F,0x8000,0x1FFD,0x8700,0,0,
  1104.     0x303,0x81F8,0x33E,0x7FE6,0,0,15,0xE37E,0,0,0,0,0,
  1105.     0,0,0,0,0,0,0x7F87,0xC780,0,0,0,0,0x6F8,0,0,
  1106.     0x3F,0xFFF8,0x7BC,0xC3CF,0x8000,0xF000,0xFC,0,0xFE0,
  1107.     0x100,0,0,0x601,0x8704,6,0x300,0,0,0,0xE1EF,0xE000,
  1108.     0,0,0,0,0,0,0,0,0,0,0xC0F6,0x181,0xE000,0,0,0,
  1109.     0x7E0,0x78,15,0xF000,0x90E,0x6E1,0xF073,0,0x3F00,
  1110.     0x380,0,0xFC0,0xF00,0,0,0x1C00,0x61C,0x7C4,0xFD80,0,
  1111.     0,0,0x60,0xF000,0,0,0,0,0,0,0,0,0,0x7F,0x1E,
  1112.     0xFF,0xE000,0x6000,0,0,0,0x7F,0xE00F,0x8FC1,0xF91F,
  1113.     0x87FE,0xE018,0,0x1F80,0x380,0,0x3E0,0xFC00,0,0,
  1114.     0x3800,0x671,0xC007,0xF3E0,0,0,0,0x40,0x3800,0,0,0,
  1115.     0,0,0,0,0,0,0x3E,3,0xE003,0x6000,0x6000,0,0,0,
  1116.     0x61,0xE018,0x1FF,0xB613,0xCF83,0x860C,0,0xF80,0x300,
  1117.     0,0x13F,0x8000,0,1,0xF800,0x7DC1,0x980E,0xF060,0,0,
  1118.     0,0,0x60,0,0,0,0,0,0,0,0,0,4,3,0xF01F,0xC000,
  1119.     0,0,0,0x7C,0x6039,0x8038,0x303B,0x7E7,0x8F80,0xC7FC,
  1120.     0,0x780,0xF00,0,0,0,0,15,0x7001,0xC704,0xFE1F,0,0,
  1121.     0,0,0,0x60,0,0,0,0,0,0,0,0,0,0xE07,0,0x203C,0,
  1122.     0,0,0,0x7C,0x7DFE,0x38,0x701F,0x1F,0xEFFC,0x7CFC,0,
  1123.     0x380,0x1C00,0,0,0,0,0x5F,3,0x60E,0xFE07,0x4000,0,
  1124.     0,0,0,0,0,0,0,0,0,0,0,0,0,0x1B,0,0x70,0,0,0,
  1125.     0,0,0xFF8,0,0x78,0x1C,0xEC07,0x7F8,0,0x3C0,0x1800,
  1126.     0,0,0,0x1800,0x78,2,0x636,0x7807,0x4000,0,0,0,0,
  1127.     0,0,0,0,0,0,0,0,0,0xF000,0x3FE,0,0xC0,0,0x1800,
  1128.     0,0,0,0xFFC0,0,0x60,0,0x4401,0xC078,0,0x1E6,0x1800,
  1129.     0,0,0,0x1800,0x7C,2,0x2EC,0xFF87,0x8C00,0,0,0,0,
  1130.     0,0,0,0,0,0,0,0,0x7C,0xA000,0x1E00,0,0x78,1,
  1131.     0x7FF8,0,0,1,0xFC00,0,0xC0,0,0xC00,0x7B0C,0,0x7F,
  1132.     0x3000,0,0,0,6,0x7C,3,0x2CE,0xF663,0x8400,0,0,0,
  1133.     0,0,0,0,0,0,0,0,0,0x1CF,0x6000,0xF000,14,0x1DB,
  1134.     7,0xF1FF,0,0xD800,0,0,0,0x80,0,0x60F,0xBF0C,0,1,
  1135.     0xF000,0,0,0,3,0x78,1,0xC3DF,0xFEE0,0x3C00,0,0,0,
  1136.     0,0,0,0,0,0,0,0,0,0x70E,0xC37F,0x8000,6,0x3DF,
  1137.     0x8001,0x3FF3,0xFF80,0xEE00,0,0,0,0x80,0,0x60F,
  1138.     0xB83E,0,1,0xE000,0,0,0,0,0x70,5,0xC07A,0x7F80,
  1139.     0x3600,0,0,0,0,0,0,0,0,0,0,0,0xF0,0x1C03,0x1FC3,
  1140.     0,0,4,0xC047,0x7C00,0x1C1,0x2600,0,0x1F,0xFC00,0x80,
  1141.     0,0x1C00,0x1C27,0,0,0,0,0,0,0x30,0x70,0xFB8F,
  1142.     0x81BF,0xC000,0x600,0,0,0,0,0,0,0,0,0,0,15,
  1143.     0xFFDE,0xFC0E,0x7C00,0,0,0,0xFFC7,0xE000,0x7F,0,0,
  1144.     0xF8,0x180,0xF0,0,0x1800,0xFE3,0,0,0,0,0,0,0x1BF0,
  1145.     0x31,0x8FE3,0x1E0,0xC000,0x1800,0,0,0,0,0,0,0,0,
  1146.     0,0,0x18,0x1F,0xE038,0x5800,0,0,0,0x58D,0xC000,
  1147.     0x1F,0xE000,0,0x40,0x1E0,0x10,0,0xC00,0x183,0x8000,
  1148.     0,0,0,0,0,0x1FE0,0x1E,0xE66,0x41F0,0xE180,0x1C00,0,
  1149.     0,0,0,0,0,0,0,0,0,0x30,0,0x60,0xF000,0,0,0,
  1150.     0x1BF,0xC000,7,0xE000,0,0,0x71,0x8010,0,0x63C,0,
  1151.     0xE000,0,0,0,0,0,0x1CFC,1,0xF604,0xC390,0x6000,0,
  1152.     0,0,0,0,0,0,0,0,0,0,0xE0,0,0x1C0,0xE000,0,0,
  1153.     0xC000,0x3E7,0x8000,3,0xF000,0,0,0x61,0x801F,0xE000,
  1154.     0x82F0,0,0xF000,0,0,0,0,0,0xE08,1,0xE20E,0xC670,0,
  1155.     0,0,0,0,0,0,0,0,0,0,0,0x300,0,0x700,0xC000,0,
  1156.     0,0x6000,0x1F00,0,1,0xFC00,0,0,0xC0,0,0x3801,
  1157.     0xF260,0,0x7000,0,0,0,0,0,0xF78,3,0xB21E,0x400,0,
  1158.     0,0,0,0,0,0,0,0,0,0,0,0x600,0,0x400,0xE000,0,
  1159.     0,0,0xFE00,0,0,0xFF80,0,0,0x80,0,0xE01,0xE660,0,
  1160.     0x7000,0,0,0,0,0,0x77C,2,0x7F30,0x400,0,0,0,0,0,
  1161.     0,0,0,0xE00,0x2000,0,0,0x1C00,0,0x400,0xE000,0,0,
  1162.     7,0xF800,0,0,0x3FC0,0,0,0,0,0x3E0,0xAC36,0,0x1C00,
  1163.     0,0,0,0,0,0xFF04,3,0x7FE0,0x400,0,0,0x300,0,0,0,
  1164.     0,0,0x1F00,0x6000,0,0,0x7C00,0,0x800,0x8100,0,0,
  1165.     0x1F,0x3000,0,0,0x3DC0,0,0,0,0x6000,0x1C,0x380C,0,
  1166.     0xF80,0,0,0,0,0,0xC7E7,1,0xFF83,0x9C00,0,0,0x300,
  1167.     0,0,0xE0,0,0,0x300,0xE000,0,0,0xFC00,0,0x80C,
  1168.     0x81A0,0,0,0x18,0,0,0,0x1C0,0,0,0,0xE000,4,
  1169.     0x3000,6,0x3C0,0,0,0,0,7,0x8471,1,0xB79E,0xF000,0,
  1170.     0,0x200,0,0,0x1E0,0,0,0x301,0xE000,0,0,0x7FC6,0,
  1171.     0xC0F,0x8020,0,0,0x3C0,0,0,0,0x1DF8,0,0,3,0xE000,
  1172.     4,0x1000,6,0x1FF0,0,0,0,0,6,0x5E0,0x8031,0xDDE0,0,
  1173.     0,0,0x300,0,0,0,0,0,0x303,0xC000,0,0,0x1F7E,0,
  1174.     0x408,0,0,0,0xF00,0,0,0,0x1EFC,0,0,15,0xA000,7,
  1175.     0x1800,0,0x1C78,0,0,0,0,3,0x5C1,0xE07F,0,0,0,0,
  1176.     0x300,0,0,4,0,0,0x10E,0xC000,0,0,0x23B,0,0x438,0,
  1177.     0,1,0xF800,0,0,0,0xE3E,0,0,14,0xF000,7,0x800,0,
  1178.     0x18,0,0,0,0,2,0xD80,0xB1C0,0,0,0,0,0,0,0,4,0,
  1179.     0,0x11F,0x8000,0,0,0x3B,0,0x660,0,0x3800,0xEF9,
  1180.     0x8000,0,0,0,0x70E,0,0,3,0x7800,3,0x8800,0,0x18,
  1181.     0,0,0,0,2,0xFB90,0x6100,0,0,0,0,0x1800,0,0,0,0,
  1182.     0,0x3E,0,0,0,0x3A,0,0x760,0,0xCD0,0x1E80,0,0,0,
  1183.     0,12,0,0,3,0xD800,0,0xF806,0,0x1F8,0,0,0,0,3,
  1184.     0x81F0,0xE300,0,0,0,0,0x7800,0,0,0,0,0,0x1F8,0,
  1185.     0,0,0x2B,0,0x3C0,0,0x1E,0,0,0,0,0,0x1F,0x8000,0,
  1186.     0,0xD800,0,0xB00E,0,0x378,0,0,0,0,0,0x1F7,0xFC00,
  1187.     0,0,0,0,0x6000,0,0,0,0,0,0x70,0,0,0,0x3029,0,
  1188.     0x700,0,6,0,0,0,0,0,0x1F,0xE000,0,0,0x5800,
  1189.     0x2000,12,0xFF,0xFC70,0,0,0,0,0,0x7FC,0x7000,0,0,
  1190.     0,0,0xE000,0,0,0,0,0x1C00,0,0,0,0,0x3029,0,
  1191.     0x1E00,0,0,0,0,0,0,0,15,0xF800,0,0,0,0x6000,
  1192.     0x700,0x8F,0xF8,0,0,0,0,0,0x20C,0xE000,0,0,0,0,
  1193.     0x8000,0,0,0,0,0,0,0,0,0,0x6048,0x8000,0x7800,0,
  1194.     0,0,0,0,0,0,1,0xFA00,0,0,0,0x6000,0,0x77F,
  1195.     0xC1AF,0,0,0,0,0,15,0x8000,0,0,0,1,0x8000,0,0,
  1196.     0,0,0,0,0,0,0,0x604B,0xC000,0x2000,0,0,0,0,0,0,
  1197.     0,0,0xFE00,0,0,0,0x3E00,0x7000,0xF88,0x301,0xC000,
  1198.     0,0,0,0,0x1FC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1199.     0,0x4E,0xC000,0,0,0,0,0,0,0,0,0,0x3E00,0,0xF8E0,
  1200.     1,0xE380,0,0x1EFC,0x309,0x8000,0,0,0,0,0x1D0,0,0,
  1201.     0,0,0,0,1,0xC000,0,0x1C00,0,0,0,0,0,0xCC,0,0,
  1202.     0,0,0,0,0,0,0,0,0x1600,0,0xF878,3,0x30C0,0,
  1203.     0x3078,0x3FF,0xE000,0,0,0,0,0x70,0,0,0,0,0x1C00,
  1204.     0,1,0x8000,0,0xC00,0,0,0,0,0,0x18E,0,0,0,0,0,
  1205.     0,0,0,0,0,0x1A00,0,0,14,0xF060,0,0x7014,0x180D,
  1206.     0xE000,0,0,0,0,0x18,0,0,0,0x3C3,0xFC00,0x7E,0x16,
  1207.     0,0xE00,0,0,0,0,0,0,0x30F,6,0,0,0,0,0,0,0,0,
  1208.     0,0x800,0,4,15,0x3FE0,0x6000,0x1F,0xB800,0x8000,0,
  1209.     0,0,0,14,0,0,0,0x7FF,0x3000,0x3C2,0x7E,0,0x3FF9,
  1210.     0xC000,0,0,0,0,0,0x60F,0x30,0,0,0,0,0,0,0,0,0,
  1211.     0x1800,0,4,0,0x7FF,0xE000,7,0xFC00,0,0,0,0,0,2,
  1212.     0,0x780,0,0xC7E,0xB000,0x1E02,0xEC,0,0x3800,0xC000,
  1213.     0,0,0,0,0,0xC09,0x70,0,0,0,0,0,0,0,0,0,0x1000,
  1214.     0,4,0,0x8F7,0xC000,0x1FE,0xF000,0,0,0,0,0,3,0,
  1215.     0x4E0,0,0x1873,0xE000,0x101E,0x18C,0,0x3800,0x2000,0,
  1216.     0,0,0,0x30,0x1818,0x780,0,0,0,0,0,0,0,0,0,
  1217.     0x1000,0,0x1C,0,0x1991,0xE004,0x7BF,0xC000,0,0,0,0,
  1218.     0,7,0,0x4E0,0,0x301E,0x3800,0x1014,0x104,0,0x1800,
  1219.     0x3000,0,0,0,0,0x30,0x601E,0x1600,0,0,0,0,0,0,0,
  1220.     0,0,0x1000,0,0x1C,0,0x1A13,0xF3C4,0xC6C,0,0,0,0,
  1221.     0,0,4,7,0xE630,0,0x2018,0x600,0x1070,0x108,0,0,0,
  1222.     0,0,0,0,0x20,0xC013,0xF800,0,0,0,0,0,0,0,0,0,
  1223.     0x1000,0,0,0,0x163A,0x3F80,0x3878,0,0,0,0,0,1,
  1224.     0xFFFC,0x7FC,0x219E,0,0x6000,0x380,0x820,0x1D8,0,0,
  1225.     0,0,0,0,0,3,0x8010,0xF000,0,0,0,0,0,0,0,0,0,
  1226.     0x3000,0,0,0,0x161C,0x7F80,0x6000,0,0,0,0,0,1,0,
  1227.     0x431,0xB083,0,0xC000,0xC0,0x830,0x30,0,0,0,0,0,0,
  1228.     0,0xFE,0x71,0xE000,0,0,0,0,0,0,0,0,0,0x3000,0,
  1229.     0,0,0x120B,0xF000,0x6000,0,0,0,0,0,1,0x8000,0x403,
  1230.     0x9CE1,0xC000,0xC000,0x60,0xC1C,0,0,0x1F0,0,0,0,0,
  1231.     0,0x180,0x5F,0,0,0,0,0,0,0,0,0,0,0x1000,0,0,0,
  1232.     0x1E1C,0xF000,0x3000,0,0,0,0,0,1,0x8000,0xC03,
  1233.     0x8638,0x6000,0x40FF,0x60,0x607,0,0,0xC0,0,0,0,0,
  1234.     0,0x300,0x56,0,0,0,0,0,0,0,0,0,0,0x1000,0x380,
  1235.     0,0,0xC1B,0x8007,0xF000,0,0,0,0,0,0,0x8000,0x7001,
  1236.     0x838E,0x2018,0x7F81,0xFDC0,0x307,0x8000,0,0,0,0,0,
  1237.     0,0x180,0x200,0xF0,0,0,0,0,0,0,0,0,0,0,0x1000,
  1238.     0x1C0,0,0,14,0x1C,0,0,0,0,0,0,0,0x8000,0xC003,
  1239.     0xC0C3,0x20BF,0xF000,0x3F00,0x106,0x8000,0,0,0,0,0,
  1240.     0,0x3C0,0xE00,0xF0,0,0,0,0,0,0,0,0,0,0,0x1000,
  1241.     0x180,0,0,0,0x18,0,0,0,0,0,0,1,0x8001,0x8F02,
  1242.     0xC037,0xB0FB,0x8000,0,0x187,0x8000,0,0,0,0,0,0,
  1243.     0xCC8,0x1800,0x98,0,0,0,0,0,0,0,0,0,0,0x1800,0,
  1244.     0,0,0,0xD0,0,0,0,0,0,0,1,1,0xD02,0x801F,0xB88B,
  1245.     0,0,0x107,0,0,0,0,0,0,0,0x18FF,0x3000,0x88,0,0,
  1246.     0,0,0,0,0,0,0,0,0x800,0,0,0,0,0x1F0,0,0,0,0,
  1247.     3,0,1,0x8001,0xE003,0x800E,0x1C81,0,0,0x303,0,0,0,
  1248.     0,0,0,0,0x71C3,0x3800,0x88,0,0,0,0,0,0,0,0,0,
  1249.     0,0xC00,0,0,0,0,0x1E0,0,0,0,0,0x1F,0,0,0x8003,
  1250.     0x8000,0x7FC,0x7C3,0x8000,0x3C,0x301,0,0,0,0,0,0,
  1251.     0,0x4003,0x800,0xB8,0,0,0,0,0,0,0,0,0,0,0x700,
  1252.     0,0,0,0,0x1C0,0,0,0,0,0,0x6000,0,0x8006,0,0x7B8,
  1253.     0x7E1,0x8000,0x19,0xC201,0x8000,0,0,0,0,0,0,0x7703,
  1254.     0xCC00,0x130,0,0,0,0,0,0,0,0,0,0,0x300,0,0,0,
  1255.     0,0x100,0,0,0,0,0,0,1,0xB80C,0,0xC1A0,0x2E1,
  1256.     0xC000,1,0xC301,0x8000,0,0,0,0,0,0,0x3DE0,0x4400,
  1257.     0x1B20,0,0,0,0,0,0,0,0,0,0,0x300,0,0,0,0,
  1258.     0x180,0,0,0,0,0,0,1,0xE9F8,0x7FFF,0x30E0,0x3C0,
  1259.     0xE387,0x8000,0x81C1,0x8000,0,0,0,0,0,0,0x3C0,
  1260.     0xC400,0x1E20,0,0,0,0,0,0,0,0,0,0,0x180,0,0,0,
  1261.     0,0xC0,0,0,0,0,0,0,0,0xF01,0xC000,0x3000,0x80,
  1262.     0x5EFD,0,0x7F,0,0,0,0,0,0,0,0x600,0xC60C,0x3820,
  1263.     0,0,0,0,0,0,0,0,0,0,0x80,0,0,0,0,0x1C0,0,0,
  1264.     0,0,0,0,0,0x707,0,0x3000,0x60,0x4001,0,0,0,0,0,
  1265.     0,0,0,0,0xC00,0x461F,0xE020,0,0,0,0,0,0,0,0,0,
  1266.     0,0xC0,0,0,0,0,0x3C0,0,0,0,0,0,0,0,0xDFC,0x180,
  1267.     0x1000,0x7E,0x71,0,0,0,0,0,0,0,0,0,0x1800,0xFC10,
  1268.     0x33E0,0,0,0,0,0,0,0,0,0,0,0x78,0,0,0,0,0x300,
  1269.     0,0,0,0,0,0,0,0x1800,0,0x3000,0,0x71,0,0,0,0,
  1270.     0,0,0,0,0,0x1C00,0xF869,0xBF00,0,0,0,0,0,0,0,0,
  1271.     0,0,0x3C,0,0,0,0,0xE00,0,0,0,0,0,0,0,0x3000,
  1272.     0x3F,0xE000,0,3,0,0,0,0,0,0,0,0,0,0x400,0x1FF,
  1273.     0xEC00,0,0,0,0,0,0,0,0,0,0,0x23,0,0,0,0,
  1274.     0x3800,0,0,0,0,0,0,0x3000,0xE00C,0x37,0xF000,0,2,
  1275.     0,0,0,0,0,0,0,0,0,0x3E00,0xC3FF,0xC000,0,0,0,0,
  1276.     0,0,0,0,0,0,7,0,0,0,0,0xE000,0,0,0,0,0,0,
  1277.     0x7001,0x8000,0,0x1F80,0xF80,2,0,0,0,0,0,0,0,0,
  1278.     0,0x7B00,0x338,0,0,0,0,0,0,0,0,0,0,0,1,0x8000,
  1279.     0,0,1,0x8000,8,0,0,0,0,0,0x6001,0,0,0x60,0x18E0,
  1280.     4,0,0,0,0,0,0,0,0,0,0x1180,0x320,0,0,0,0,0,0,
  1281.     0,0,0,0,0,0,0x9E00,0,0,3,0,0x18,0,0,0,0,0,3,
  1282.     0,0,0x10,0x101C,12,0,0,0,0,0,0,0,0,0,0x80,
  1283.     0x1E0,0,0,0,0,0,0,0,0,0,0,0,0,0x5600,0,0,2,0,
  1284.     0,0,0,0,0,0,2,0,0,0x1E,0x1007,0xEFF8,0,0,0,0,
  1285.     0,0,0,0,0,0x80,0x3C0,0,0,0,0,0,0,0,0,0,0,0,
  1286.     0,0x7B00,0,0,0x7602,0,0,0,0,0,0,0,2,0,0,1,
  1287.     0xF000,0x3800,0,0x3C0,0,0,0,0,0,0,0,0x80,0x100,0,
  1288.     0,0,0,0,0,0,0,0,0,0,0,0x3900,0,0x60,0xFFF2,0,
  1289.     0,0,0,0,0,0,6,0,0,0,0,0x20,0,0x6C0,0,0,0,0,
  1290.     0,0,0,0x80,0x100,0,0,0,0,0,0,0,0,0,0,0,0,
  1291.     0x3880,0,0x3FF,0xC011,0,0,0,0,0,0,0,0x184,0,0,0,
  1292.     0,0x76,0,0x467,0,0,0,0,0,0,0,0x180,0,0,0,0,0,
  1293.     0,0,0,0,0,0,0,0,0x1EC0,0,0x380,0x19,0,0,0,0,0,
  1294.     0,0,0x8398,0,0,0,0,0x76,0,0x421,0,0,0,0,0,0,0,
  1295.     0x180,0x200,0,0,0,0,0,0x1980,0,0,0,0,0,0,0xB60,
  1296.     0,0x1E00,9,0x8000,0,0,0,0,0,0,0xBB70,0,0,0,0,
  1297.     0x3F,0,0x630,0,0,0,0,0,0,0,0x300,0x600,0,0,0,0,
  1298.     0,0,0,0,0,0,0,0,0x19B0,0,0x3800,8,0x8000,0,0,0,
  1299.     0,0,1,0x99C0,0,0,0,0,0x1D,0,0x31C,0,0,0,0,0,0,
  1300.     0,0x600,0x400,0,0,0,0,0,0,0,0,0,0,0,0,0x898,0,
  1301.     0x2000,8,0xC000,0,0,0,0,0,0,0x100,0,0,0,0,0x19,
  1302.     0x8000,0x87,0x3C00,0,0,0,0,0,0,0xC00,0,0,0,0,0,
  1303.     0,0,0,0,0,0,0,0,0x7CC,0,0x3000,7,0x5E00,0,0,0,
  1304.     0,0,0,0x300,0,0,0,0,8,0xC000,0xF1,0xFC00,0,0,0,
  1305.     0,0,0,0x800,0x1800,0,0,0,0,0,8,0,0,0,0,0,0,
  1306.     0x1E4,0,0x3000,3,0x4200,0,0,0,0,0,0,0x600,0,0,0,
  1307.     0,4,0x4000,0x70,0x1F00,0,0,0,0,0,0,0x1800,0,0,0,
  1308.     0,0,0,8,0,0,0,0,0,0,0xA7,0,0x3000,3,0xF300,0,
  1309.     0,0,0,0,0,0x400,0,0,0,0,4,0x6000,0x70,0x3BFF,
  1310.     0xFE00,0,0,0,0,0,0x1080,0,0,0,0,0,0,0,0,0,0,
  1311.     0,0,0,0xE1,0x8000,0x2000,1,0x8D80,0,0,0,0,0,0,
  1312.     0xC00,0,0,0,0,6,0x2000,0x10,0x4808,0x200,0,0,0,0,
  1313.     0,0x3380,0,0,0,0,0,0,0,0,0,0,0,0,0,0x70,
  1314.     0xC000,0x6000,0,0xC00,0,0,0,0,0,0,0x1800,0,0,0,
  1315.     0,2,0x3000,0x1F,0x8C00,0x300,0,0,0,0,0,0x6280,0,
  1316.     0,0,0,0,0,0,0,0,0,0,0,0,0x38,0x6000,0x6000,0,
  1317.     0x400,0,0,0,0,0,0,0x1000,0,0,0,0,0x61,0x800,0,
  1318.     0x780,0x1E0,0,0,0,0,1,0xCE80,0,0,0,0,0,0,0,0,
  1319.     0,0,0,0,0,0x1C,0x2000,0x2000,0,0,0,0,0,0,0,0,
  1320.     0x1000,0,0,0,0,0x61,0xC00,0,0xC0,0x67,0,0,0,0,3,
  1321.     0x1D00,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0x1800,
  1322.     0x2000,0x1F,0xE0C8,0,0,0,0,0,0,0x2000,0,0,0,0,
  1323.     0xE1,0x8400,0,0x60,0x1C,0,0,0xE000,0,0x7E,0xD00,0,
  1324.     0,0,0,0,0,0,0,0x1800,0,0,0,0,0,0x800,0x2000,
  1325.     0x3F,0xB0C8,0,0,0,0,0,0,0x4000,0,0,0,0,0x180,
  1326.     0xC400,0,0x60,0x38,0xC000,9,0xB000,0,0xF0,0x600,0,
  1327.     0,0,0,0,0,0,0,0x1B00,0,0,0,0,0,0xC00,0x2000,
  1328.     0x1C7C,0xFE00,0,0,0,0,0,0,0x4000,0,0,0,0,0x300,
  1329.     0x4400,0,0xC0,0x19,0xC000,0x3F,0x9000,1,0xFF80,0x200,
  1330.     0,0,0,0,0,0,0,0,0x3E0,0,0,0,0,0,0x800,0x3001,
  1331.     0xFC1C,0x3B80,0,0,0,0,0,0,0x6000,0,0,0,0,0,
  1332.     0x6600,0,0x80,15,0x4000,0x20,0x1800,2,0x1800,0,0,0,
  1333.     0,0,0,0,0,0,0xF0,0,0,0,0,0,0x800,0x1001,0xC00,
  1334.     0xEF0,0,0,0,0,0,0,0x6000,0,0,0,0,0,0x4300,0,
  1335.     0x380,6,0x4000,0x20,0xC00,4,0x1800,0,0,0,0,0,0,0,
  1336.     0,0,0x38,0,0,0,0,0,0x800,0x1803,0x800,0x7F6,
  1337.     0xC000,0,0,0,0,0,0x2000,0,0,0,0,0,0x4180,0,
  1338.     0x280,0,0x4000,0x1C0,0x600,12,0x3C00,0,0,0,0,0,0,
  1339.     0,0,0,0x38,0,0,0,0,0x30,0xE00,0xC02,0x1800,0x207,
  1340.     0xBC00,0,0,0,0,0,0x2000,0,0,0,0,0,0x20C0,0,
  1341.     0x200,0,0x4000,0x180,0x700,0x18,0x6C00,0,0,0,0,0,
  1342.     0,0,0,0,0x30,0,0,0,0,0x30,0x380,0x71E,0x1803,6,
  1343.     0x600,0,0,0,0,0,0x2000,0,0,0,0,0,0x2040,0,0xE00,
  1344.     0,0x4000,0x600,0x300,0x18,0x5800,0x300,0,0,0,0,0,
  1345.     0,0,0,0,0,0,0,0,0,0xE0,0x5FE,0x3000,0xF9E,0x7EFC,
  1346.     0,0,0,0,0,0x1000,0,0,0,0,0,0x1860,0,0x1800,0,
  1347.     0x4000,0xC00,0x100,12,0x7000,0x7C0,0,0,0,0,0,0,0,
  1348.     0,0,0,0,0,0,0,0x30,0xC0,0x1000,0x79F,0xC0FC,
  1349.     0x2000,0,0,0,0x2000,0x1000,0,0,0,0,0,0x830,0,
  1350.     0x2000,0,0x6000,0x1800,0x180,4,0,0x480,0,0,0,0,0,
  1351.     0,0,0,0,0,0,0,0,0,0x1C,0,0x3000,0,0,0x6000,0,
  1352.     0,0,0x3000,0x1000,0,0,0,0,0,0xC10,3,0xE000,0,
  1353.     0x2000,0x2000,0x98,6,0,0x480,0,0,0,0,0,0,0,0,0,
  1354.     0,0,0,0,0,3,0x8380,0x3000,0,0,0x6000,0,0,0,
  1355.     0x3000,0x2000,0,0,0,0,0,0x410,6,0,0,0x2000,0xC000,
  1356.     0x9C,3,0,0x480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1357.     0,0xFEC0,0x61C0,0,0,0x6000,0,0,0,0x300,0x2000,0,0,
  1358.     0,0,0,0x410,12,0,0,0x2001,0x8000,0x1E4,1,0x8000,
  1359.     0x580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1860,
  1360.     0x3F70,0,0,0x2000,0,0,0,0x400,0x2000,0,0,0,0,0,
  1361.     0x610,0x38,0,0,0x3003,0,0x44,0,0xC000,0x500,0,0,0,
  1362.     0,0,0,0,0,0,0,0,0,0,0,0,0x38,0x30,0,0,0x3000,
  1363.     0,0,0,0x400,0xC000,0,0,0,0,0,0x318,0x1C0,0,0,
  1364.     0x1002,0,4,0,0x6000,0x580,0,0,0,0,0,0,0,0,0,0,
  1365.     0,0,0,0,0,14,0x10,0,0,0x3000,0,0,0,0,0xE000,0,
  1366.     0,0,0,0,0x88,0xF00,0,0,0x1802,0,6,0,0x2000,0x640,
  1367.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0x10,0,0,
  1368.     0x3000,0,0,0,0,0x2000,0,0,0x80,0,0,0x6C,0x3800,0,
  1369.     0,0x802,0,0xC02,0x3000,0x2000,0x3F0,0,0,0xC000,0,0,
  1370.     0,0,0,0,0,0,0,0,0,0,1,0xF810,0,0,0x3600,0,0,
  1371.     0,0,0x2000,0,0,0x1E0,0,0,0x35,0xC000,0,0,0x802,0,
  1372.     0xC03,0x7000,0x2000,0x7F8,0,0,0xC000,0,0,0,0,0,0,
  1373.     0,0,0,0,0,0,0,0x1C31,0,0x3000,0,0,0,0,0,0x2000,
  1374.     0,0,0xE0,0,0,0x1F,0,0,1,0xC02,0,0xC01,0x7C00,
  1375.     0x2000,0x33E,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1376.     0x523,1,0xF000,0x6000,0,0,0,0,0x3000,0,0,0xC0,0,
  1377.     0,8,0x40,0,1,0x406,0,0x801,0x6700,0x2000,0x1BE,0,
  1378.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x7F0,7,0xF800,
  1379.     0x6000,0,0,0,0,0x1800,0,0,0,0,0,8,0x3F0,0,0,
  1380.     0x4604,0,0x801,0x4110,0x6000,0x18EF,0,0,0,0,0,0,0,
  1381.     0,0,0,0,0,0,0,0,0,0x3F0,0x3D,0xF706,0x2000,0,0,
  1382.     0,0,0xC00,0,0,0,0,0,12,0x5E20,0,0,0xC204,0,
  1383.     0x801,0xC199,0x8000,0x18FE,0,0,0,0,0,0,0,0,0,0,
  1384.     0,0,0,4,0,0,0x130,0x60,0xC1EF,0xF000,0,0,0,0,
  1385.     0x600,0,0,0,0,0,7,0xE020,0,0,0xC104,0,0x801,
  1386.     0x80FF,0,0x38FE,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
  1387.     0,0,0x1D8,0x41,0x4038,0xF000,0,0,0,0,0x100,0,0,0,
  1388.     0,0,0,0x20,0,0,0x18C,0,1,0x803C,0,0x306F,0,0,0,
  1389.     0,14,0,0,0,0,0,0,0,0,0,0,0,0x66,0x78C1,0xC000,
  1390.     0x3000,0,0,0,0,0x180,4,0,0,0,0,0,0x60,0,0,
  1391.     0x19F,0,1,0xC038,0,0xE067,0x8000,0,0,0,2,0,0,0,
  1392.     0,0,0,0,0,0,0,0,0x37,0xFF80,0xC000,0x3C00,0,0,0,
  1393.     0,0x80,7,0,0,0,0,0,0x40,0,0,0xF4,0x8000,3,
  1394.     0x6030,0,0xC03F,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,
  1395.     0,0,0,0x1E,0x6B00,0,0x400,0,0,0,0,0xC0,3,0,0,0,
  1396.     0,0,0xC0,0,0,0x64,0xC000,3,0x2000,0,0x60,0x8000,0,
  1397.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0xC900,0,0x300,
  1398.     0,0,0,0,0xE0,1,0,0,0,0,0,0x80,0,0,4,0x4000,1,
  1399.     0xB000,0,0xF9,0x8000,0,0,0,6,0,0,0,0,0,0,0,0,
  1400.     0,0,0,0,0xC400,0,0x180,0,0,0,0,0x70,7,0,0,0,0,
  1401.     0,0x180,0,0,4,0x4000,0,0xDC00,1,0x80EB,0x8000,0,0,
  1402.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x600,0,0xC0,0,
  1403.     0,0,0,0x1C,1,0x3F80,0,0,0,0,0x100,0,0,6,0xC000,
  1404.     0,0x6600,2,0x400B,0x8000,0,0,0,0,0,0,0,0,0,0,0,
  1405.     0,0,0,0,0,0x200,0,0x7F,0,0,0,0,6,1,0xE060,0,0,
  1406.     0,0,0x300,0,0,3,0x8000,0x70,0x2300,6,0x600F,0,0,
  1407.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x200,0,1,
  1408.     0xC000,0,0,0,3,0x7FE,0x60,0,0,0,0,0x600,0,0,0,
  1409.     0,0x7C,0x2180,4,0x3000,0,0,0,0,0,0,0,0,0,0,0,
  1410.     0,0,0,0,0,0,0x200,0,0,0x3000,0,0,0,1,0xFC08,
  1411.     0x3F,0,0,1,0,0x400,0,0,0,0,0x26,0x2080,0x3C,
  1412.     0x6000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1413.     0x200,0,0,0x1800,0,0,0,0,0x6000,1,0xC000,0,1,0,
  1414.     0x800,0,0,0,0,0x33,0x2081,0x8060,0xE000,0,0,0,0,
  1415.     0,0,0,0,0,0,0,0,0,0,0,0,0,0x200,0,0,0x800,0,
  1416.     0,0,0,0,1,0x4000,0,1,0x8000,0x1000,0,0,0,0,0x19,
  1417.     0x9080,0x8040,0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1418.     0,0,0,0,0x200,0,0,0xC00,0,0,0,0,0,1,0x4000,0,
  1419.     1,0x8000,0x3000,0,0,0,0,0x24,0xD880,0x380,0x8000,0,
  1420.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xC00,0,0,
  1421.     0x400,0,0,0,0,0,0,0x4000,0,0x101,0xC000,0x6000,0,
  1422.     0,0,0,0x36,0x6CC0,0x700,0x4000,0x1000,0,0,0,0,0,
  1423.     0,0,0x180,0,0,0,0,0,0,0,0,0x800,0,0,0x600,0,0,
  1424.     0,0,0,0,0xC000,0,0x340,1,0x8000,0,0,0,0,0x33,
  1425.     0x3E40,0x3C00,0x6000,0x3000,0,0,0,0,0,0,0,0,0,0,
  1426.     0,0,0,0,0,0,0x1800,0,0,0x300,0,0,0,0,0,0,
  1427.     0x8000,0,0x760,3,0,0,0,0,0,13,0x8FC0,0x2400,
  1428.     0x220E,0x3800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1429.     0,0x3000,0,0,0x300,0,0,0,0,0,0,0x8000,0,0x20,6,
  1430.     0,0,0,0,0,12,0x8780,0x4000,0x77FE,0x3800,0,0,0,0,
  1431.     0,0,0,0,0,0,0,0,0,0,0,0,0xC000,0,0,0xE00,0,0,
  1432.     0,0,0,0x18,0x8000,0,0xCF0,12,0,0,0,0,0,0,0xC380,
  1433.     0x6000,0xCFF8,0x3000,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1434.     0,14,0,0xC000,0,0,0x1FC0,0,0,0,0,0,0,0x8000,0,
  1435.     0xC9C,0x10,0,0,0,0,0,3,0x4080,0x2000,0x8C00,0x31D8,
  1436.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0x8000,0,0,
  1437.     0x1C7C,0,0,0,0,0,1,0xC000,0,0x88,0x20,0,0,0,0,
  1438.     0,3,0x20C0,0x2000,0x8CF0,0x31F6,0x6000,0,0,0,0x600,
  1439.     0,0,0,0,0,0,0,0,0,14,0,0x8000,0,0,0x3CC7,0,0,
  1440.     0,0,0,0,0x8001,0x8000,0x98,0x60,0,0,0,0,0,1,
  1441.     0x3040,0x3001,0x9FF0,0x30E2,0xFC00,0,0,0,0x300,0,0,
  1442.     0,0,0,0,0,0,0,0,0,0x8000,0,0,0xFC0,0x8000,0,0,
  1443.     0,0,0,0x8001,0x8000,0x10B0,0xC0,0,0,0,0,0,1,
  1444.     0x9840,0x1003,0x986,0x3332,0x7F80,0xE00,0,0,0,0,0,
  1445.     0,0,0,0,0,0,0,0,0,0xC000,0,0,0x80,0xF800,0,0,
  1446.     0,0,0,0x4001,0x8000,0x10F0,0x180,0,0,0,0,0,0,
  1447.     0x871,0x802,0x1380,0x1F,0x30E0,8,0,0,0x40,0,0,0,0,
  1448.     0,0,0,0,0,0,0,0xC000,0,0,0,0x4FC0,0,0,0,0,0,
  1449.     0x6000,0,0xE0,0x300,0,0,0,0,0,0,0x2819,0x9E41,
  1450.     0x13C0,0x1F99,0xE01C,14,0,0,0x40,0,0,0,0,0,0,0,
  1451.     0,0,0,0,0xC000,0,0,0,0x70,0,0,0,0,0,0x3000,0,
  1452.     0x1800,0x200,0,0,0,0,0,0,0x2C08,0x3F3,0x1740,
  1453.     0xDF0E,0xC007,0xC007,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1454.     1,0x8000,0,0,0,0x18,0,0,0,0,0,0x3800,0,0x1800,
  1455.     0x600,0,0,0,0,0,0,0x608,0x1E,0xDC0,0xC00D,0x8000,
  1456.     0x6003,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
  1457.     0,0,14,0x8000,0,0,0,0,0x800,0,0x1800,0x400,0,0,
  1458.     0,0,0,0,0x308,0,0xCC0,0,0x7000,0x3037,0x8000,0,0,
  1459.     0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,3,0xC000,0,0,
  1460.     0,0,0x400,0,0x1800,0x400,0,0,0,0,0,0,0x7C8,0,
  1461.     0xC80,0,0x1C00,0x103E,0,0,0,0,0,0,0,0,0,0,0,0,
  1462.     0,1,0,0,0,0,0,0x4000,0,0,0,0,0x400,0,0x1800,
  1463.     0x600,0,0,0,0,0,0,0x670,0,0xE00,0,0x600,0x1EFE,
  1464.     0x1800,0,0,0,0,0,0,0,0,0,0,0,0,1,0x8000,0,0,
  1465.     0,0,0x6000,0,0,0,0,0x700,0,0x1C00,0x200,0,0,0,0,
  1466.     0,0,0x7F,0x8600,0,0,0x300,0x730,0x1C00,0,0x60,0,0,
  1467.     0,0,0,0,0,0,0,0,0,0xC000,0,0,0,0,0x2000,0,0,
  1468.     0,0,0x600,0,0xC00,0x200,0,0,0,0x8000,0,0,0x18,
  1469.     0x7F80,0,0,0x300,0x400,0xB00,0,0,0,0,0,0,0,0,0,
  1470.     0,0,0,0,0x6000,0,0,0,0,0x2000,0,0,0,0,0x200,0,
  1471.     0xE00,0x400,0,0,1,0x8000,0,0,14,0x80,0,0,0x301,
  1472.     0xF600,0x360,0,0,0,0,0,0,0x600,0,0,0,0,0,0,
  1473.     0x3000,0,0,0,0,0x2000,0,0x200,0,0,0x300,0,0x600,
  1474.     0x400,0,0,0,0,0,0,1,0xFEF0,0x3027,0xC000,0x7C3,
  1475.     0x1B00,0x1F8,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1000,
  1476.     0,0,0,0,0x4000,0,0x200,0,0,0x100,0,0x3300,0x400,
  1477.     0,0,0,0,0,0,0,0x3F7,0xFFE7,0xE000,0x62,0x9C0,
  1478.     0x19E,0,0,0,0,0x300,0,0,0,0,0,0,0,0,0x1800,0,
  1479.     0,0,0,0x4000,0,0,0,0,0x300,0,0x3100,0x200,0,0,0,
  1480.     0,0,0,0,7,0xD987,0x8000,0x1E,0xCD8,0x1E,0,0,0,0,
  1481.     0,0,0x80,0,0,0,0,0,0,0x800,0,0,0,0,0x8000,0,0,
  1482.     0,0,0x300,0,0x2000,0x200,0,0,0,0,0,0,0,0,0x1E0E,
  1483.     0,0,0x738,14,0,0,0,0,0,0,0xC0,0,0,0,0,0,0,
  1484.     0xC00,0,0,0,1,0,0,0,0,0,0x100,0,0xC00,0x380,0,
  1485.     0,0,0,0,0,0,0,0xE18,0,0,0x1F0,3,0x8100,0,0,0,
  1486.     0,0,0,0,0,0,0,0,0,0x400,0,0,0,3,0,0,0,0,0,
  1487.     0x180,0,0xC00,0x80,0,0,0,0,0,0,0,0,0x70,0x30,6,
  1488.     0,1,0x8100,0,0,0,0,0,0,0,0,0,0,0,0,0x600,0,0,
  1489.     0,6,0,0,0,0,0,0x80,0,0xC00,0x18C,0,0,0,0,0,0,
  1490.     0,0,0,0x1FC,0x600A,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1491.     0,0,0x200,0,0,0,4,0,0,0,0,0,0x180,0,0x200,
  1492.     0x18C,0x100,0,0,0,0,0,0,0,0,0x1DF,0xF00A,0,0,0,
  1493.     0,0,0,0,0,0,0,0,0,0,0,0,0x300,0,0,0,0x1C,0,
  1494.     0,0,0,0,0x300,0,0x200,0x100,0x8380,0,0,0,0,0,0,
  1495.     0,0,0xE0,0x700B,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1496.     0,0x180,0,0,0,0x38,0,0,0,0,0,0x200,0,0x100,
  1497.     0x180,0x82C0,0,0,0,0,0,0,0,0,0x100,0x6009,0,0,0,
  1498.     0,0,0,0,0,0,0,0,0,0,0,0,0x80,0,0,0,0x20,0,0,
  1499.     0,0,0,0x200,0,0x100,0x80,0xC40,0,0,0,0,0,0,0,0,
  1500.     0x6300,0x4019,0xC00,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1501.     0,0x80,0,0,0,0x20,0,0,0,0,0,0x400,0,0x80,0x80,
  1502.     0xC40,0,0,0,0,0,0,0,1,0xFA00,0x4019,0xCC00,0,0,
  1503.     0,0,0,0,0,0,0,0,0,0,0,0,0xC0,0,0,0,0x20,0,0,
  1504.     0,0,0,0x400,0,0x80,0x80,0x1840,0,0,0,0,0,0,0,3,
  1505.     0x1E00,0xC010,0x6000,0,0x180,0,0,0,0,0xC0,0,0,0,
  1506.     0,0,0,0,0x70,0x1C00,0,0,0x20,0,0,0,0,0,0x400,0,
  1507.     0x7C0,0x180,0x30C0,0,0,0,0,0,0,0,6,0x1A00,0x6010,
  1508.     0x2000,0,0xF0,0,0,0,0,0,0x2000,0,0,0,0,0,0,
  1509.     0x18,0x1C00,0,0,0x20,0,0,0,0x600,0,0xC00,0,0x380,
  1510.     0x101,0xE0C0,0,0,0,0,0,0,0,0x3C,0,0x3C90,0x2000,
  1511.     0,0x70,3,0,0,0,1,0xA000,0,0,0,0,0,0,15,0xC00,
  1512.     0,0,0x20,0,0,0,0,0,0x800,0,0x6000,0x603,0x80,0,
  1513.     0,0,0,0,0,0,0x78,0,0x7B0,0x3000,0,0x60,7,0,0,0,
  1514.     0x606,0xC000,0,0,0,0,0,0,1,0x8000,0,0,0x20,0,0,
  1515.     0,0,0,0x800,0,0x4000,0x1C02,0x100,0,0,0,0,0,0,0,
  1516.     0x58,0,0x120,0x1000,0,0,0x1C,0,0,0,0x600,0xC00,0,
  1517.     0,0,0,0,0,0,0xC000,0,0,0x20,0,0,0,0,0,0x800,
  1518.     0x30,0,0x3004,0x100,0,0,0,0,0,0,0,0x40,0,0xE0,
  1519.     0x1000,0,0,0x14,0,0,0,0,0xC00,0,0,0,0,0,0,0,
  1520.     0x6000,0,0,0x60,0,0,0,0,0,0x80E,0x70,0,0x4006,
  1521.     0x100,0,0,0,0,0,0,0,0xC0,0,0,0x1000,0,8,0x1C,0,
  1522.     0,0,0,0xC00,0,0,0,0,0,0,0,0x2180,0,0,0x40,0,0,
  1523.     0,0,0,0x41E,0x40,1,0x8002,0x100,0,0,0,0,0,0,0,
  1524.     0x180,0,0,0x1800,0,8,0,0,0,0x600,0,0,0,0,0,0,
  1525.     0,0,0,0x3080,0,0,0x40,0,0,0,0,0,0x608,0,3,2,
  1526.     0x300,0,0,0,0,0,0,0,0x300,0,0,0xE00,0,0,0,0,0,
  1527.     0x200,0,0,0,0,0,0,0,0,0,0x1000,0,0,0xC0,0,0,0,
  1528.     0,0,0x300,0,6,2,0x200,0,0,0,0,0,0,0,0x7E00,0,
  1529.     0,0x380,0,0x1C80,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1530.     0x1000,0,0,0x80,0,0,0,0,0,0x100,0,4,2,0x200,
  1531.     0x2000,0,0,0,0,0,7,0xC000,0,0,0x80,0,0x1EC0,0,0,
  1532.     0,0,0,0,0,0,0,0,0,0,0,0x1000,0,0,0x180,0,0,0,
  1533.     0,0,0x180,0,2,4,0x200,0x7000,0,0,0,0,0,6,0,0,
  1534.     0,0xC0,0,0xFC0,0,0,0,0x300,0,0,0,0,0,0,0,0,0,
  1535.     0x1000,0,0,0x100,0,0,0,0,0,0x80,0,2,4,0x600,
  1536.     0x3000,0,0,0,0,0,0x1C,0,0,0,0x40,0,0x780,0,0,0,
  1537.     0x300,0,0,0,0,0,0,0,0,0,0x3000,0,0,0x300,0,0,
  1538.     0,0,0,0xC0,0,3,8,0x400,0,0,0,0,0,0,0x38,0,0,
  1539.     0,0x30,0,0x80,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1540.     0x3000,0,0,0x1E00,0,0,0,0,0,0x40,0,1,8,0x400,0,
  1541.     0,0,0,0,0,0x20,0,0,0,0x18,0,0,0,0,0,0,0,0,0,
  1542.     0,0,0,0,0,0,0x2000,0,1,0xFC00,0,0,0,0,0,0x40,
  1543.     0,2,8,0x800,0,0,0,0,0,0,0x20,0x30,0,0,8,0,0,
  1544.     0,0,0,0,0,0,0,0,0,0,0,0,0,0x2000,0,7,0,0,0,
  1545.     0,0,0,0x40,0,3,12,0x800,0,0,0,0,0,0,0x20,0x30,
  1546.     0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2000,
  1547.     0,0x1C,0,0,0,0,0,0,0x40,0,2,4,0x1800,0,0,0,0,
  1548.     0,0,0x20,0,0x1C0,0,2,0x8000,0,0,0,0,0,0,0,
  1549.     0x100,0,0,0,0,0,0,0x2000,0,0x10,0,0,0,0,0,0,
  1550.     0x60,0,0x1E,6,0x3000,0,0,0,0,0,0,0x20,0,0x1C0,0,
  1551.     3,0x8000,0,0,0,0,0,0,0,0x100,0,0,0,0,0,0,
  1552.     0x2000,0,0x60,0,0,0,0,0,0,0x20,0,0x30,3,0xE000,
  1553.     0,0,0,0,0,0,0xF0,0x700,0,0,1,0x8000,0,0,0,0,0,
  1554.     0,0,0,0,0,0,0,0,0,0x2000,0,0x40,0,0,0,0,0,0,
  1555.     0x20,0,0x20,0,0,0,0,0,0,0,0,0x70,0x700,0,0,0,
  1556.     0x8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2000,0,
  1557.     0x40,0,0,0,0,0,0,0x30,0,0x20,0,0,0,0,0,0,0,0,
  1558.     0x60,0,0,0,0,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,
  1559.     0,0,0x6000,0,0x40,0,0,0,0,0,0,0x10,0,0x60,0,0,
  1560.     0,0,0,0,0,0,0x30,0x8000,0,0,1,0xC000,0,0,0,0,
  1561.     0,0,0,0,0,0,0,0,0,0,0x4000,0,0x40,0,0,0,0,0,
  1562.     0,0x10,0,0x40,0,0,0,0,0,0,0,0,0x10,0xC000,0,
  1563.     0x1800,0,0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1564.     0xC000,0,0xC0,0,0,0,0,0,0,8,0,0x40,0,0,0,0,0,
  1565.     0,0,0,0x18,0x4D00,0,0x1C00,0,0xC000,0,0,0,0,0,0,
  1566.     0,0,0,0,0,0,0,0,0x8000,0,0x180,0,0,0,0,0,0,6,
  1567.     0,0x1C0,0,0,0,0,0,0,0,0,8,0x1F80,0,0x1D80,0,
  1568.     0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xC000,0,
  1569.     0x300,0,0,0,0,0,0,2,0,0x100,0,0,0,0,0,0,0,0,
  1570.     8,0xDF80,0,0x18C0,0,0x8000,0,0,0,0,0,0,0,0,0,0,
  1571.     0,0,0,0,0x8000,0,0xE00,0,0,0,0,0,0,2,0,0x300,
  1572.     0,0,0,0,0,0,0,0,8,0xCF00,0,0x40,0,0x8000,0,0,
  1573.     0,0,0,0,0,0,0,0,0,0,0,0,0x8000,0,0xE00,0,0,0,
  1574.     0,0,0,1,0,0x200,0,0,0,0,0,0,0,0,8,0x8000,0,
  1575.     0x8C0,0,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1576.     0x8000,0,0x1C00,0,0,0,0,0,0,1,0,0x400,0,0,0,0,
  1577.     0,0,0,0,4,0,0x41,0xCCC0,1,0,0,0,0,0,0,0,0,0,
  1578.     0,0,0,0,0,0,0x8000,0,0x1C00,0,0,0,0,0,0,0,
  1579.     0x8000,0xC00,0,0,0,0,0,0,0,0,6,0x80,0x1FF9,
  1580.     0xEC00,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1581.     0x8000,0,0x7000,0,0,0,0,0,0,0,0x8000,0x3000,0,0,
  1582.     0,0,0,0,0,0,2,0x83,0xE00E,0x6C00,2,0,0,0,0,0,
  1583.     0,0,0,0,0,0,0,0,0,0,0x8000,0,0xF000,0,0,0,0,
  1584.     0,0,1,0x8000,0x6000,0,0,0,0,0,0,0,0,6,12,3,
  1585.     0xC00,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x8000,
  1586.     0x180,0xE000,0,0,0,0,0,0,0,0x8000,0xC000,0,0,0,
  1587.     0,0,0,0,0,12,0x7F8,1,0x9C00,12,0,0,0,0,0,0,0,
  1588.     0,0,0,0,0,0,0,1,0x8000,0x180,0xC000,0,0,0,0,0,
  1589.     0,0,0xC1FF,0,0,0,0,0,0,0,0,0,6,0x1CF0,0,0xAE00,
  1590.     8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0x1F1,
  1591.     0x8000,0,0,0,0,0,0,0,0x7F50,0,0,0,0,0,0,0,0,
  1592.     0,3,0xF800,0,0xFE00,0x18,0,0,0x1C00,0,0,0,0,0,0,
  1593.     0,0,0,0,0,1,0,0xFE,0,0,0,0,0,0,0,0,0,0,0,0,
  1594.     0,0,0,0,0,0,0,0,0,0x1F00,0x30,0,0,0x1E00,0,0,
  1595.     0,0,0,0,0,0,0,0,0,3,0,0x20,0,0,0,0,0,0,0,0,
  1596.     0,0,0,0,0,0,0,0,0,0,0,0,0,0x3E80,0x30,0,0,
  1597.     0xE00,0,0,0,0,0,0,0,0,0,0,0,6,0,0x70,0,0,0,
  1598.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,
  1599.     0x30,0,0,0x780,0,0,0,0,0,0,0,0,0,0,0,4,0,
  1600.     0x10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1601.     0,0,0xC0,0x20,0,0,0x380,0,0,0,0,0,0,0,0,0,0,
  1602.     0,4,0,0x30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1603.     0,0,0,0,0,0x40,0x2E0,0,0,0x2CC,0,0,0,0,0,0,0,
  1604.     0,0,0,0,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1605.     0,0,0,0,0,0,0,0,0x78,0xE7C0,0,0,0x274,0,0,0,0,
  1606.     0,0,0,0,0,0,0,4,0,0x1C0,0,0,0,0,0,0,0,0,0,
  1607.     0,0,0,0,0,0,0,0,0,0,0,0,7,0xFC00,0,0,0x20C,0,
  1608.     0,0,0,0,0,0,0,0,0,0,4,0,0x7F00,0,0,0,0,0,0,
  1609.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1800,0,0,
  1610.     0x618,0,0,0,0,0,0,0,0,0,0,0,4,0,0x4000,0,0,0,
  1611.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
  1612.     0x8300,0,0,0x730,0,0,0,0,0,0,0,0,0,0,0,4,0,
  1613.     0x4000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1614.     0,0,0,1,0x8300,0,0,0x120,0,0,0,0,0,0,0,0,0,0,
  1615.     0,12,12,0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1616.     0,0,0,0,0,0,0,0,0x7300,0,0,0x3F40,0,0,0,0,0,
  1617.     0,0,0,0,0,0,12,15,0x8000,0,0,0,0,0,0,0,0,0,
  1618.     0,0,0,0,0,0,0,0,0,0,0,0,0,0x5D00,0,0,0x7DC0,
  1619.     0,0,0,0,0,0,0,0,0,0,0,14,14,0,0,0,0,0,0,0,
  1620.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2100,0,0,
  1621.     0xC400,0,0,0,0,0,0,0,0,0,0,0,14,14,0,0,0,0,
  1622.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1623.     0x3100,0,0,0x8C00,0,0,0,0,0,0,0,0,0,0,0,0x1E,
  1624.     14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1625.     0,0,0,0,0x1F00,0,1,0x9800,0x180,0,0,0,0,0,0,0,
  1626.     0,0,0,0x1A,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1627.     0,0,0,0,0,0,0,0,0xC00,0,14,0x3000,0x100,0,0,0,
  1628.     0,0,0,0,0,0,0,2,0x18,0,0,0,0,0,0,0,0,0,0,0,
  1629.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x38,0xD000,0,0,
  1630.     0,0,0,0,0,0,0,0,0,0x1F,0x10,0,0,0,0,0,0,0,0,
  1631.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x60,
  1632.     0x8000,0,0,0,0,0,0,0,0,0,0,0,0x1E,0x70,0,0,0,
  1633.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1634.     0,0x41,0x8000,0,0,0,0,0,0,0,0,0,0,0,0x34,0x180,
  1635.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1636.     0,0,0,0,0xC1,0x8000,0,0,0,0,0,0,0,0,0,0,0,
  1637.     0x7F,0x8100,0,0,0,0,0,0,0,0,0,0,0,0x3000,0,0,
  1638.     0,0,0,0,0,0,0,0,0,0,0,0xFE,0,0,0,0,0,0,0,0,
  1639.     0,0,0,0,0x7A,0xE0,0,0,0,0,0,0,0,0,0,0,0,
  1640.     0x3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0x60,0,0,0,
  1641.     0,0,0,0,0,0,0,0,0,0x3C,0x30,0,0,0,0,0,0,0,0,
  1642.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1643.     0,0,0,0,0,0,0,0,0,0x7C,0x60,0,0,0,0,0,0,0,0,
  1644.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1645.     0,0,0,0,0,0,0,0,0,0x78,0x80,0,0,0,0,0,0,0,0,
  1646.     0,0,0,0,0,0,0x30,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1647.     0,0,0,0,0,0,0,0,0,0,0x78,0x180,0,0,0,0,0,0,
  1648.     0,0,0,0,0,0,0,0,0x3C,0,0,0,0,0,0,0,0,0,0,0,
  1649.     0,0,0,0,0,0,0,0,0,0,0,0,0x78,0x300,0,0,0,0,
  1650.     0,0,0,0,0,0,0,0,0,0,0x38,0,0,0,0,0,0,0,0,0,
  1651.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x78,0x600,0,0,
  1652.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1653.     0,0,0x100,0,0,0,0,0,0,0,0,0,0,0,0,0x3C,0xC00,
  1654.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1655.     0,0,0,0,0x100,0,0,0,0,0,0,0,0,0,0,0,0,0x3E,
  1656.     0x400,0xFC0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1657.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1658.     0x3E,0x600,0x1FC0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1659.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1660.     0,0,0x3F,0xFE00,0x200,0,0,0,0,0,0,0,0,0,0,0,0,
  1661.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1662.     0,0,0,0,0x1F,0xF300,0,0,0,0,0,0,0,0,0,0,0,0,
  1663.     0,0,0,0x3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1664.     0,0,0,0,0,0,0,15,0xF380,0,0,0,0,0,0,0,0,0,0,
  1665.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1666.     0,0,0,0,0,0,0,3,0xFEE0,0,0,15,0,0,0,0,0x100,
  1667.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1668.     0,0,0,0,0,0,0,0,0,0,0xFFFE,0,0,3,0,0,0,0,
  1669.     0x100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1670.     0,0,0,0,0,0,0,0,0,0,0,0,0,0x3F80,0,0,0,0,0,
  1671.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1672.     0,0,0,0,0,0,0,0,0,0,0,0,0,0x100,0,0,0,0,0,
  1673.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1674.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1675.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1676.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1677.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1678.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1679.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1680.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1681.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1682.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1683.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1684.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1685.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1686.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1687.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1688.     0,13,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1689.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1690.     14,7,0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1691.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1692.     0x300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1693.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1694.     0x700,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1695.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1696.     0x140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1697.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1698.     0x7E0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1699.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1700.     0x7B00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1701.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
  1702.     0xFE00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1703.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1704.     14,0xF800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1705.     0,0x3F0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1706.     0,0,0x19,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1707.     0,0,0x1FFC,0x7FF,0x8C0F,0,0x3FF,0,0,0,0,0,0,0,0,
  1708.     0,0,0,0,0,0,0,0,0,0x33,0,0,0,0,0,0,0,0,0,0,
  1709.     0,0,1,0xFFC0,0,0,0xFF,0xF006,0xFC00,0xF000,0xFC03,
  1710.     0xFC00,0xFC00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1711.     0,0xEE,0,0,0,0,0,0,0,0,0,0,0,0,7,0x7F,0xE000,
  1712.     0,0x1F00,1,0x8000,0x4000,0x7FC,0,0x3FF,0x8000,0,0,
  1713.     6,0,0,0,0,0,0,0,0,0,0,0,0,0x86,0,0,0,0,0,0,
  1714.     0,0,0,0,0,0,4,0,0x1FF8,1,0xF000,0,0,0,0,0,0,
  1715.     0x7000,0,0,6,0,0,0,0,0,0,0,0,0,6,0,0,0x186,0,
  1716.     0,0,0,0,0,0,0,0,0,0,6,0x7FC,0,12,15,0,0,0,0,
  1717.     0,0,0,0x1C00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1718.     0x410F,0x8000,0,0,0,0,0,0,0,0,0,0,0x7D,0xF800,0,
  1719.     3,0x38,0,0,0,0,0,0,0,0x1FFF,0xE000,0,0,0,0,0,
  1720.     0,0,0,0,0,0,0,0,1,0xF60D,0xA000,0,0,0,0,0,0,
  1721.     0,0,0,0x7E,0x180,0,0,1,0x87E0,0,0,0,0,0,0,0,
  1722.     0xC00,0x6F80,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1E1,
  1723.     0x9401,0xF800,0,0,0,0,0,0,0,0x18,0,0xFE3,0xFE00,
  1724.     0,0,0,0xDC00,0,0,0,0,0,0,0,0,0x7C70,0,0,0,0,
  1725.     0,0,0,0,0,0,0,0,0,0x3F0,0x8E00,0xF000,0,0,0,0,
  1726.     0,0x1E,0,0x1FF,0x8023,0xF800,0xC00,0,0,0,0x6000,0,
  1727.     0,0,0,0,0,0,0,0x340F,0xE000,0,0,0,0,0,0,0,0,
  1728.     0,0,0,0,0,0x4700,0x2000,0,0,0,0,0,0x33,15,
  1729.     0xFF00,0xFFFE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,
  1730.     0x1FC0,0,0,0,0,0,0,0,0,0,1,0,0,0xFF,0x8580,
  1731.     0x3000,0,0,0,0,0,0x1FF3,0x1F0,0,0,0,0,0,0,0,0,
  1732.     0,0,0,0,0,0,0,0,2,0x7E,0,0,0,0,0,0,0,0,0,3,
  1733.     0xFF00,0,0xC0,0x580,0x3000,0,0,0,0,7,0xA001,0xFE00,
  1734.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,
  1735.     0,0,0,0,0,0,0,0x61FF,0,0x3F,0x9980,0x1800,0,0,0,
  1736.     0,4,0xE000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1737.     0,0,6,0,0,0,0,0,0,0,0x780,0,0x1F,0xB000,0xFFFE,
  1738.     0x3FE0,0x7E00,0x1800,0,0,0,0,0x1FC,0,0,0,0,0,0,
  1739.     0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,
  1740.     0,0x1CFF,0xC1F0,0x19,0xF000,3,0xFFFF,0xF000,0xC00,0,
  1741.     0,0,15,0xFE00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1742.     0,0,0,0,0xF8,0,0,0,0,0,0,0,0x7001,0xC1A0,0x3C,
  1743.     0x2000,0,0,0,0xC00,0,0,0,0x70,0,0,0,0,0,0,0,0,
  1744.     0,0,0,0,0,0,0,0,0,0,0,0,0x700,0,0,0,0,0,0,
  1745.     0x3801,0xC001,0x8199,0xE3FC,0,0,0,12,0x800,0,0,0,
  1746.     0x1E0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1747.     0,0,0x3C00,0,0,0,0,0,0x1DF,0xC701,0,0xFE06,0x3C04,
  1748.     0,0,0,15,0xF800,0,0,0,0xE00,0,0,0,0,0,0,0,0,
  1749.     0,0,0,0,0,0,0,0,0,0,0,0,0x4000,0,0,0,0,0,
  1750.     0xFE20,0xF6,0,0,0,0,0,0,6,0x800,0,0,0,0x7800,0,
  1751.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1752.     0xC000,0,0,0,0,0x3F,0,12,0,0,0,0,0,0,14,0,0,
  1753.     0,1,0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1754.     0,0,0,1,0x8000,0,0,0,0x3FF,0xFFFC,0,0,0,0,0,0,
  1755.     0,0,0x78,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,
  1756.     0,0,0,0,0,0,0,0,1,0x8000,0,0,0,0x3F8,0,0,0,0,
  1757.     0,0,0,0,0,7,0xFFF0,0,0,0x3F0,0,0,0,0,0,0,0,0,
  1758.     0,0,0,0,0,0,0,0,0,0,0,0,1,0x8000,0,0,0,0x7E0,
  1759.     0,0,0,0,0,0,0,0,0,0,15,0x8000,0,0x3E00,0,0,0,
  1760.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x7C00,
  1761.     0,0,3,0x87F8,0,0,0,0,0,0,0,0,0,0,0,0x7E00,7,
  1762.     0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1763.     0,0,7,0xFFE0,0,0,3,0xC01F,0,0,0,0,0,0,0,0,0,
  1764.     0,0,0x1FF,0xFFF8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1765.     0,0,0,0,0,0,0,0xF8,0,0,0,3,0xE001,0xC000,0,0,
  1766.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1767.     0,0,0,0,0,0,0,0,0,0,0xC0,0,0,0,0,0x1F,0x7FF8,
  1768.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1769.     0,0,0,0,0,0,0,0,0,0,0,0,0xE0,0,0,0,0,0x7F,
  1770.     0xFF80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1771.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x20,0,0,0,0,
  1772.     0x78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1773.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x60,0,0,0,0,
  1774.     0xC0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1775.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFF,0xC000,0,
  1776.     0,0,0x180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1777.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1778.     0x3C00,0,0,0,0x80,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1779.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1780.     0,0x3C0,0,0,0,0x80,0,0,0,0,0,0,0,0,0,0,0,0,
  1781.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1782.     0,0,0x3FF,0xF800,0xF000,0,0x7C,0,0,0,0,0,0,0,0,
  1783.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1784.     0,0,0,0,0,0,0xF60,0x7FF,0xFFE,0,3,0xFE00,0,0,0,
  1785.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1786.     0,0,0,0,0,0,0,0,0,0,0x3870,0,0,0,0,0xF800,0,
  1787.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1788.     0,0,0,0,0,0,0,0,0,0,0,0,0x408,0,0,0,0,0,0,
  1789.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1790.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1791.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1792.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1793.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1794.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1795.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1796.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1797.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1798.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1799.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1800.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1801.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1802.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1803.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1804. };
  1805.  
  1806. mpr_static(bimage, 640, 320, 1, bimg);
  1807. SHAR_EOF
  1808. fi # end of overwriting check
  1809. echo shar: extracting "'sunclock.1'" '(2108 characters)'
  1810. if test -f 'sunclock.1'
  1811. then
  1812.        echo shar: will not over-write existing file "'sunclock.1'"
  1813. else
  1814. cat << \SHAR_EOF > 'sunclock.1'
  1815. .TH SUNCLOCK 1 "21 DEC 1988"
  1816. .UC 4
  1817. .SH NAME
  1818. sunclock \- Show illuminated portion of Earth
  1819. .SH SYNOPSIS
  1820. .B sunclock
  1821. .SH DESCRIPTION
  1822. .I sunclock
  1823. is a SunView application that displays a map of the Earth and
  1824. indicates the illuminated portion of the globe by drawing
  1825. sunlit areas dark on light, night areas as light on dark.
  1826. .PP
  1827. The program initially appears iconic, showing a small map in a
  1828. 126 by 63 pixel double-sized icon with the local date and time
  1829. at the bottom.  If opened, a 640 by 320 pixel map is displayed
  1830. which shows both the local and Universal (GMT) time to the second.
  1831. While the window is open, pressing the right mouse button displays
  1832. a menu which lets you step the clock from the present time forward
  1833. or backward in increments of one hour, day, week, month, or year.
  1834. If you select ``Animate'' from this menu, the program steps continuously
  1835. every half second.  Try selecting ``Week'' then ``Animate'' to watch
  1836. the seasons pass.  Select ``Year'' and ``Animate'' and you can see the
  1837. (ever so subtle) precession of the equinoxes.  Selecting ``Real time''
  1838. restores the current time display.
  1839. .SH HOW IT WORKS
  1840. .I sunclock
  1841. calculates the position of the Sun using the algorithm in chapter 18 of:
  1842. .PP
  1843. .I Astronomical Formulae for Calculators
  1844. by Jean Meeus, Third Edition, Richmond: Willmann-Bell, 1985.
  1845. .PP
  1846. and Mercator projects the illuminated area onto map image.  The
  1847. Sun's position is calculated to better than one arc-second
  1848. in accuracy.
  1849. .SH BUGS
  1850. The map isn't rescaled if you resize the open window.  (I don't want
  1851. to have to store a vector database for the map.)
  1852. .PP
  1853. The illuminated area shown is the area which would be sunlit
  1854. if the Earth had no atmosphere.  The actual illuminated area is
  1855. larger because of atmospheric refraction and twilight.
  1856. .PP
  1857. Only works for dates between 1970 and 2034 due to limited range of Unix
  1858. time representation.
  1859. .SH AUTHOR
  1860.     John Walker
  1861. .br
  1862.     Autodesk, Inc.
  1863. .br
  1864.     2320 Marinship Way
  1865. .br
  1866.     Sausalito, CA  94965
  1867. .br
  1868.     USA
  1869. .br
  1870.     {sun,well,uunet}!acad!kelvin
  1871. .br
  1872. or: kelvin@acad.uu.net
  1873. .br
  1874.     Fax:   (415) 389-9418
  1875. .br
  1876.     Voice: (415) 332-2344 Ext. 2829
  1877. SHAR_EOF
  1878. fi # end of overwriting check
  1879. #    End of shell archive
  1880. exit 0
  1881.